UNPKG

wix-style-react

Version:
90 lines (82 loc) 2.61 kB
import ReactTestUtils from 'react-dom/test-utils'; import { testkitFactoryCreator } from 'wix-ui-test-utils/vanilla'; import { isClassExists } from '../../test/utils'; import textDriverFactory from '../Text/Text.driver'; var textTestkitFactory = testkitFactoryCreator(textDriverFactory); var selectorDriverFactory = function selectorDriverFactory(_ref) { var element = _ref.element; var toggleInput = function toggleInput() { return element.querySelector('[data-hook="toggle"] input'); }; var image = function image() { return element.querySelector('[data-hook="selector-image"]'); }; var titleTextDriver = function titleTextDriver() { return textTestkitFactory({ wrapper: element, dataHook: 'selector-title' }); }; var subtitleTextDriver = function subtitleTextDriver() { return textTestkitFactory({ wrapper: element, dataHook: 'selector-subtitle' }); }; var extraNode = function extraNode() { return element.querySelector('[data-hook="selector-extra-node"]'); }; return { exists: function exists() { return !!element; }, isImageTiny: function isImageTiny() { return isClassExists(image(), 'tiny'); }, isImageSmall: function isImageSmall() { return isClassExists(image(), 'small'); }, isImagePortrait: function isImagePortrait() { return isClassExists(image(), 'portrait'); }, isImageLarge: function isImageLarge() { return isClassExists(image(), 'large'); }, isImageCinema: function isImageCinema() { return isClassExists(image(), 'cinema'); }, isImageCircle: function isImageCircle() { return isClassExists(image(), 'circle'); }, isImageRectangular: function isImageRectangular() { return isClassExists(image(), 'rectangular'); }, isDisabled: function isDisabled() { return toggleInput().disabled; }, toggleType: function toggleType() { return toggleInput().type; }, isChecked: function isChecked() { return !!toggleInput().checked; }, hasImage: function hasImage() { return !!image(); }, getImage: function getImage() { return image().childNodes[0]; }, titleTextDriver: titleTextDriver, subtitleTextDriver: subtitleTextDriver, hasExtraNode: function hasExtraNode() { return !!extraNode(); }, getExtraNode: function getExtraNode() { return extraNode().childNodes[0]; }, toggle: function toggle() { return ReactTestUtils.Simulate.click(element); } }; }; export default selectorDriverFactory;