Ферментный тест: два отдельных события клика, происходящие подряд - PullRequest
0 голосов
/ 09 октября 2019

Я пытаюсь протестировать два отдельных события щелчка с помощью 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 срабатывает слишком быстропосле того, как будут применены стили события.

Любая помощь, ведущая к более элегантному решению, будет принята с благодарностью!

...