Я пытаюсь протестировать два отдельных события щелчка с помощью Enzyme для функционального компонента в React. Проблема заключается в том, что смоделированные события происходят слишком быстро, чтобы стили перехода вступили в силу.
Мне нужно использовать хакерский setTimeout
, чтобы это сработало, и кажется, что это может быть лучше реализовано.
it('should render the arrows and move right and left after clicking each arrow', () => {
const wrapper = shallow(<MyCarousel {...props} />);
const leftArrow = wrapper.find(`.${styles.leftArrow}`);
const rightArrow = wrapper.find(`.${styles.rightArrow}`);
rightArrow.simulate('click');
setTimeout(() => {
leftArrow.simulate('click');
const carouselList = wrapper.find(`.${styles.carouselList}`).at(0);
expect(carouselList.props().style.transform).to.be.equal('translate(0px, 0)');
}, 1000);
});
Переход по элементам:
.carouselList {
transition: 1s;
}
Без бита тестирования, вложенного в setTimeout
, первый click
из rightArrow
срабатывает, но leftArrow
срабатывает слишком быстропосле того, как будут применены стили события.
Любая помощь, ведущая к более элегантному решению, будет принята с благодарностью!