wix-style-react
Version:
wix-style-react
75 lines (74 loc) • 3.54 kB
JavaScript
;
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