wix-style-react
Version:
wix-style-react
58 lines (55 loc) • 1.8 kB
JavaScript
import ReactTestUtils from 'react-dom/test-utils';
var modalDriverFactory = function modalDriverFactory(_ref) {
var _element = _ref.element;
var getPortal = function getPortal() {
return 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 {
exists: function exists() {
return !!getPortal();
},
element: function element() {
return _element;
},
isOpen: isOpen,
isThemeExist: function isThemeExist(theme) {
return !!getPortal().querySelector('.' + theme);
},
getChildBySelector: function getChildBySelector(selector) {
return getPortal().querySelector(selector);
},
isScrollable: function isScrollable() {
return !getPortal().classList.contains('portalNonScrollable');
},
closeButtonExists: function closeButtonExists() {
return !!getCloseButton();
},
clickOnOverlay: function clickOnOverlay() {
var overlay = getOverlay();
ReactTestUtils.Simulate.click(overlay);
},
clickOnCloseButton: function clickOnCloseButton() {
var button = getCloseButton();
ReactTestUtils.Simulate.click(button);
},
getContentStyle: function getContentStyle() {
return getContent().style;
},
getContentLabel: function getContentLabel() {
return getContent().getAttribute('aria-label');
}
};
};
export default modalDriverFactory;