UNPKG

wix-style-react

Version:
75 lines (74 loc) 3.54 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); exports.__esModule = true; exports.default = void 0; var _testUtils = _interopRequireDefault(require("react-dom/test-utils")); var _Tooltip = require("../Tooltip/Tooltip.driver"); var _constants = require("./constants"); var modalDriverFactory = _ref => { var { element: _element, eventTrigger } = _ref; var getPortal = () => { var dataHook = _element && _element.getAttribute('data-hook'); return dataHook ? document.body.querySelector(".portal.portal-".concat(dataHook)) : document.body.querySelector('.portal'); }; var getOverlay = () => document.body.querySelector('.ReactModal__Overlay'); var getContent = () => document.body.querySelector('.ReactModal__Content'); var isOpen = () => !!getContent(); var getCloseButton = () => document.body.querySelector("[data-hook=\"".concat(_constants.dataHooks.modalCloseButton, "\"]")); var getNavigationPrevious = () => document.body.querySelector("[data-hook=\"".concat(_constants.dataHooks.navigationPrevButton, "\"]")); var getNavigationNext = () => document.body.querySelector("[data-hook=\"".concat(_constants.dataHooks.navigationNextButton, "\"]")); var getTooltipNext = () => (0, _Tooltip.tooltipLegacyDriverFactory)({ element: document.body.querySelector("[data-hook=\"".concat(_constants.dataHooks.navigationNextTooltip, "\"]")), eventTrigger }); var getTooltipPrev = () => (0, _Tooltip.tooltipLegacyDriverFactory)({ element: document.body.querySelector("[data-hook=\"".concat(_constants.dataHooks.navigationPrevTooltip, "\"]")), eventTrigger }); return { /** true if the modal is on the DOM */ exists: () => !!getPortal(), element: () => _element, /** true when the module is open */ isOpen, getChildBySelector: selector => getPortal().querySelector(selector), /** true if the modal is scrollable */ isScrollable: () => !!getPortal().querySelector('[data-scrollable]'), closeButtonExists: () => !!getCloseButton(), /** click on the modal overlay (helpful for testing if the modal is dismissed) */ clickOnOverlay: () => { var overlay = getOverlay(); _testUtils.default.Simulate.click(overlay); }, clickOnCloseButton: () => { var button = getCloseButton(); _testUtils.default.Simulate.click(button); }, /** click on navigation control previous button */ clickOnNavigationPrevious: () => { var button = getNavigationPrevious(); _testUtils.default.Simulate.click(button); }, /** click on navigation control next button */ clickOnNavigationNext: () => { var button = getNavigationNext(); _testUtils.default.Simulate.click(button); }, navigationPreviousExists: () => !!getNavigationPrevious(), navigationNextExists: () => !!getNavigationNext(), getNavigationPreviousLabel: () => getTooltipPrev().getTooltipText(), getNavigationNextLabel: () => getTooltipNext().getTooltipText(), /** returns the element of the modal content (helpful to initialize a layout testkit) */ getContent, /** returns the style of the modal content */ getContentStyle: () => getContent().style, /** returns the modal aria-label value as given in contentLabel property */ getContentLabel: () => getContent().getAttribute('aria-label'), getZIndex: () => getOverlay().style['z-index'] }; }; var _default = exports.default = modalDriverFactory; //# sourceMappingURL=Modal.driver.js.map