UNPKG

wix-style-react

Version:
61 lines (54 loc) 1.85 kB
import styles from './Checkbox.scss'; import focusableDriverFactory from '../common/Focusable/Focusable.protractor.driver'; import { mergeDrivers } from '../../test/utils/private-drivers'; import { hasAttribute, hasClass } from '../../test/utils/protractor-helpers'; /** * @return <T extends InternalFocusableDriver> */ export var internalDriverFactory = function internalDriverFactory(element) { var getBox = function getBox() { return element.$('[data-hook="checkbox-box"]'); }; var getTextChildren = function getTextChildren() { return element.$('[data-hook="checkbox-children"]'); }; return { // Implements: InternalFocusableDriver focusableElement: element, clickableGetters: [getBox, getTextChildren] }; }; var checkboxDriverFactory = function checkboxDriverFactory(_element) { var checkboxElement = _element.$('[data-hook="checkbox-box"]'); var childrenElement = _element.$('[data-hook="checkbox-children"]'); var focusableDriver = focusableDriverFactory({ rootElement: _element, nativeFocusableElement: _element, clickableElements: [checkboxElement, childrenElement] }); var publicDriver = { element: function element() { return _element; }, click: function click() { return checkboxElement.click(); }, getLabel: function getLabel() { return _element.$('label'); }, getInput: function getInput() { return _element.$('input'); }, isChecked: function isChecked() { return _element.$('input').isSelected(); }, isDisabled: function isDisabled() { return hasAttribute(_element.$('input'), 'disabled'); }, hasError: function hasError() { return hasClass(_element, styles.hasError); } }; return mergeDrivers(publicDriver, focusableDriver); }; export default checkboxDriverFactory;