wix-style-react
Version:
47 lines (43 loc) • 1.7 kB
JavaScript
import ReactTestUtils from 'react-dom/test-utils';
import { iconButtonTestkitFactory } from 'wix-style-react/dist/testkit';
import { isClassExists } from '../../test/utils';
import { carouselDriverFactory as publicDriver } from './Carousel.driver';
export default ({ element }) => {
const arrowButtonDriver = direction =>
iconButtonTestkitFactory({
wrapper: element,
dataHook: `${direction}-button`,
});
return {
...publicDriver({ element }),
hasClass: className => isClassExists(element, className),
getCurrentImageIndex: () => {
const currentSlide = element.querySelector('[aria-hidden="false"]');
return Number(currentSlide.dataset.index);
},
isPrevButtonDisabled: () => arrowButtonDriver('prev').isButtonDisabled(),
isNextButtonDisabled: () => arrowButtonDriver('next').isButtonDisabled(),
loadImages: () => {
element
.querySelectorAll('[data-hook="carousel-img"]')
.forEach(img => ReactTestUtils.Simulate.load(img));
},
mouseOver: () => {
const imageContainer = element.querySelector('.slick-current');
ReactTestUtils.Simulate.mouseOver(imageContainer);
},
mouseOut: () => {
const imageContainer = element.querySelector('.slick-current');
ReactTestUtils.Simulate.mouseOut(imageContainer);
},
clickPageNavigationDot: index => {
const pageNavigator = element.querySelector(
`[data-hook="page-navigation-${index}"]`,
);
ReactTestUtils.Simulate.click(pageNavigator);
},
isPageNavigationDotExists: () =>
!!element.querySelector(`[data-hook^="page-navigation-"]`),
getChildText: child => child.textContent,
};
};