wix-style-react
Version:
81 lines (71 loc) • 3 kB
JavaScript
import buttonDriverFactory from '../Button/Button.legacy.driver';
import { dataHooks } from './constants';
import { getFormattedDataHooks, isClassExists } from '../../test/utils';
import ReactTestUtils from 'react-dom/test-utils';
import { tooltipDriverFactory } from "wix-ui-core/dist/es/src/components/tooltip/Tooltip.driver";
var fDataHooks = getFormattedDataHooks(dataHooks);
export var baseModalLayoutDriverFactory = function baseModalLayoutDriverFactory(_ref) {
var element = _ref.element,
eventTrigger = _ref.eventTrigger;
var getButtonDriver = function getButtonDriver(dataHook) {
return buttonDriverFactory({
element: element.querySelector("[data-hook=\"".concat(dataHook, "\"]"))
});
};
var tooltipTestkit = tooltipDriverFactory({
element: element.querySelector(fDataHooks.primaryButtonTooltip),
eventTrigger: eventTrigger
});
return {
exists: function exists() {
return !!element;
},
_hasClass: function _hasClass(className) {
return isClassExists(element, className);
},
_closeButtonExists: function _closeButtonExists() {
return !!element.querySelector(fDataHooks.closeButton);
},
_helpButtonExists: function _helpButtonExists() {
return !!element.querySelector(fDataHooks.helpButton);
},
/** Returns the modal theme */
getTheme: function getTheme() {
return element.getAttribute('data-theme');
},
/** Click the modal close-button */
clickCloseButton: function clickCloseButton() {
return ReactTestUtils.Simulate.click(element.querySelector(fDataHooks.closeButton));
},
clickHelpButton: function clickHelpButton() {
return ReactTestUtils.Simulate.click(element.querySelector(fDataHooks.helpButton));
},
/** Checks that a node with the provided dataHook exists */
childExists: function childExists(dataHook) {
return !!element.querySelector("[data-hook=\"".concat(dataHook, "\"]"));
},
/** Get the title's text */
getTitleText: function getTitleText() {
return element.querySelector(fDataHooks.headerTitle).textContent;
},
/** Get the subtitle's text */
getSubtitleText: function getSubtitleText() {
return element.querySelector(fDataHooks.headerSubtitle).textContent;
},
/** Return the secondary button driver*/
getSecondaryButtonDriver: function getSecondaryButtonDriver() {
return getButtonDriver(dataHooks.footerSecondaryButton);
},
/** Return the secondary button driver */
getPrimaryButtonDriver: function getPrimaryButtonDriver() {
return getButtonDriver(dataHooks.footerPrimaryButton);
},
/** Return the primary button tooltip's content */
getPrimaryButtonTooltipContent: function getPrimaryButtonTooltipContent() {
return tooltipTestkit.getTooltipText();
},
getIllustrationSrc: function getIllustrationSrc() {
return element.querySelector(fDataHooks.illustrationSrc).getAttribute('src');
}
};
};