UNPKG

wix-style-react

Version:
90 lines (74 loc) 2.46 kB
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;