wix-style-react
Version:
wix-style-react
61 lines (54 loc) • 1.85 kB
JavaScript
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;