wix-style-react
Version:
90 lines (82 loc) • 2.61 kB
JavaScript
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;