wix-style-react
Version:
90 lines (74 loc) • 2.46 kB
JavaScript
import ReactTestUtils from 'react-dom/test-utils';
import textDriverFactory from '../Text/Text.driver';
import { tooltipDriverFactory } from "wix-ui-core/dist/es/src/components/tooltip/Tooltip.driver";
import { dataHooks } from './constants';
var addItemDriverFactory = function addItemDriverFactory(_ref) {
var element = _ref.element,
eventTrigger = _ref.eventTrigger;
var byHook = function byHook(hook) {
return element.querySelector("[data-hook*=\"".concat(hook, "\"]"));
};
var tooltipTestkit = tooltipDriverFactory({
element: element,
eventTrigger: eventTrigger
});
var textDriver = function textDriver() {
return textDriverFactory({
element: byHook(dataHooks.itemText)
});
};
var subtitleTextDriver = function subtitleTextDriver() {
return textDriverFactory({
element: byHook(dataHooks.itemSubtitle)
});
};
var baseElement = element.querySelector("[data-hook=\"".concat(dataHooks.addItem, "\"]"));
return {
/** returns true if element in the DOM */
exists: function exists() {
return !!baseElement;
},
/** returns the driver element */
element: function element() {
return baseElement;
},
/** returns value of action text */
getText: function getText() {
return textDriver().getText();
},
/** true if passed children in string exists */
textExists: function textExists() {
return textDriver().exists();
},
/** returns value of tooltip content */
getTooltipContent: function getTooltipContent() {
tooltipTestkit.mouseEnter();
var text = tooltipTestkit.getContentElement().textContent;
tooltipTestkit.mouseLeave();
return text;
},
/** clicks on element */
click: function click() {
return eventTrigger.click(baseElement);
},
/** returns value of subtitle */
getSubtitle: function getSubtitle() {
return subtitleTextDriver().getText();
},
/** returns true if element is focused */
isFocused: function isFocused() {
return document.activeElement === baseElement;
},
/** sets focus on the element */
focus: function focus() {
baseElement.focus();
ReactTestUtils.Simulate.focus(baseElement);
},
/** removes focus on the element */
blur: function blur() {
baseElement.blur();
ReactTestUtils.Simulate.blur(baseElement);
}
};
};
export default addItemDriverFactory;