wix-style-react
Version:
wix-style-react
128 lines (123 loc) • 4.47 kB
JavaScript
import ReactTestUtils from 'react-dom/test-utils';
import { testkitFactoryCreator } from 'wix-ui-test-utils/vanilla';
import loaderDriverFactory from '../Loader/Loader.driver';
import buttonDriverFactory from '../Backoffice/Button/Button.driver';
import selectorDriverFactory from '../Selector/Selector.driver';
import searchDriverFactory from '../Search/Search.driver';
import textDriverFactory from '../Text/Text.driver';
import { dataHooks } from './ModalSelectorLayout.helpers';
import checkboxDriverFactory from '../Checkbox/Checkbox.driver';
var textTestkitFactory = testkitFactoryCreator(textDriverFactory);
var loaderTestkitFactory = testkitFactoryCreator(loaderDriverFactory);
var buttonTestkitFactory = testkitFactoryCreator(buttonDriverFactory);
var searchTestkitFactory = testkitFactoryCreator(searchDriverFactory);
var checkboxTestkitFactory = testkitFactoryCreator(checkboxDriverFactory);
var modalSelectorLayoutDriverFactory = function modalSelectorLayoutDriverFactory(_ref) {
var element = _ref.element;
var findInModalbyDataHook = function findInModalbyDataHook(dataHook) {
return element.querySelector('[data-hook="' + dataHook + '"]');
};
var mainLoaderDriver = function mainLoaderDriver() {
return loaderTestkitFactory({
wrapper: element,
dataHook: dataHooks.mainLoader
});
};
var nextPageLoaderDriver = function nextPageLoaderDriver() {
return loaderTestkitFactory({
wrapper: element,
dataHook: dataHooks.nextPageLoader
});
};
var cancelButtonDriver = function cancelButtonDriver() {
return buttonTestkitFactory({
wrapper: element,
dataHook: 'cancellation-button'
});
};
var okButtonDriver = function okButtonDriver() {
return buttonTestkitFactory({
wrapper: element,
dataHook: 'confirmation-button'
});
};
var subtitleTextDriver = function subtitleTextDriver() {
return textTestkitFactory({
wrapper: element,
dataHook: dataHooks.subtitle
});
};
var searchDriver = function searchDriver() {
return searchTestkitFactory({
wrapper: element,
dataHook: dataHooks.search
});
};
var getList = function getList() {
return findInModalbyDataHook(dataHooks.list);
};
var getModalBody = function getModalBody() {
return findInModalbyDataHook(dataHooks.modalBody);
};
var getSelectors = function getSelectors() {
return getList().querySelectorAll('[data-hook="' + dataHooks.selector + '"]');
};
var selectorDriverAt = function selectorDriverAt(i) {
return selectorDriverFactory({ element: getSelectors()[i] });
};
var emptyState = function emptyState() {
return findInModalbyDataHook(dataHooks.emptyState);
};
var noResultsFoundState = function noResultsFoundState() {
return findInModalbyDataHook(dataHooks.noResultsFoundState);
};
var _footerSelector = checkboxTestkitFactory({
wrapper: element,
dataHook: 'footer-selector'
});
return {
exists: function exists() {
return !!element;
},
mainLoaderDriver: mainLoaderDriver,
nextPageLoaderDriver: nextPageLoaderDriver,
cancelButtonDriver: cancelButtonDriver,
okButtonDriver: okButtonDriver,
searchDriver: searchDriver,
subtitleTextDriver: subtitleTextDriver,
getTitle: function getTitle() {
return findInModalbyDataHook('header-layout-title').textContent;
},
clickOnClose: function clickOnClose() {
return ReactTestUtils.Simulate.click(findInModalbyDataHook('header-close-button'));
},
showsEmptyState: function showsEmptyState() {
return !!emptyState();
},
getEmptyState: function getEmptyState() {
return emptyState().childNodes[0];
},
showsNoResultsFoundState: function showsNoResultsFoundState() {
return !!noResultsFoundState();
},
getNoResultsFoundState: function getNoResultsFoundState() {
return noResultsFoundState().childNodes[0];
},
listExists: function listExists() {
return !!getList();
},
numberOfItemsInList: function numberOfItemsInList() {
return getSelectors().length;
},
getSelectorDriverAt: function getSelectorDriverAt(i) {
return selectorDriverAt(i);
},
scrollDown: function scrollDown() {
return getModalBody().dispatchEvent(new Event('scroll'));
},
footerSelector: function footerSelector() {
return _footerSelector;
}
};
};
export default modalSelectorLayoutDriverFactory;