UNPKG

wix-style-react

Version:
91 lines (71 loc) 2.65 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _testUtils = _interopRequireDefault(require("react-dom/test-utils")); var modalDriverFactory = function modalDriverFactory(_ref) { var _element = _ref.element; var getPortal = function getPortal() { var dataHook = _element && _element.getAttribute('data-hook'); return dataHook ? document.body.querySelector(".portal.portal-".concat(dataHook)) : document.body.querySelector('.portal'); }; var getOverlay = function getOverlay() { return document.body.querySelector('.ReactModal__Overlay'); }; var getContent = function getContent() { return document.body.querySelector('.ReactModal__Content'); }; var isOpen = function isOpen() { return !!getContent(); }; var getCloseButton = function getCloseButton() { return document.body.querySelector('[data-hook="modal-close-button"]'); }; return { /** true if the modal is on the DOM */ exists: function exists() { return !!getPortal(); }, element: function element() { return _element; }, /** true when the module is open */ isOpen: isOpen, getChildBySelector: function getChildBySelector(selector) { return getPortal().querySelector(selector); }, /** true if the modal is scrollable */ isScrollable: function isScrollable() { return !!getPortal().querySelector('[data-scrollable]'); }, closeButtonExists: function closeButtonExists() { return !!getCloseButton(); }, /** click on the modal overlay (helpful for testing if the modal is dismissed) */ clickOnOverlay: function clickOnOverlay() { var overlay = getOverlay(); _testUtils["default"].Simulate.click(overlay); }, clickOnCloseButton: function clickOnCloseButton() { var button = getCloseButton(); _testUtils["default"].Simulate.click(button); }, /** returns the element of the modal content (helpful to initialize a layout testkit) */ getContent: getContent, /** returns the style of the modal content */ getContentStyle: function getContentStyle() { return getContent().style; }, /** returns the modal aria-label value as given in contentLabel property */ getContentLabel: function getContentLabel() { return getContent().getAttribute('aria-label'); }, getZIndex: function getZIndex() { return getOverlay().style['z-index']; } }; }; var _default = modalDriverFactory; exports["default"] = _default;