UNPKG

wix-style-react

Version:
219 lines (183 loc) • 7.73 kB
import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator"; import _defineProperty from "@babel/runtime/helpers/defineProperty"; import _regeneratorRuntime from "@babel/runtime/regenerator"; function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } import { baseUniDriverFactory } from '../../test/utils/unidriver'; import { selectorListUniDriverFactory } from '../SelectorList/SelectorList.uni.driver'; import { loaderUniDriverFactory } from '../Loader/Loader.uni.driver'; import { selectorUniDriverFactory } from '../Selector/Selector.uni.driver'; import { searchUniDriverFactory } from '../Search/Search.uni.driver'; import { textUniDriverFactory } from '../Text/Text.uni.driver'; import { dataHooks } from '../SelectorList/SelectorList.helpers'; import { dataHooks as modalSelectorDataHooks } from './ModalSelectorLayout.helpers'; import { checkboxUniDriverFactory } from '../Checkbox/Checkbox.uni.driver'; import { buttonDriverFactory } from '../Button/Button.uni.driver'; export var modalSelectorLayoutUniDriverFactory = function modalSelectorLayoutUniDriverFactory(base, body) { var findInModalByDataHook = function findInModalByDataHook(dataHook) { return base.$("[data-hook=\"".concat(dataHook, "\"]")); }; var selectorListDriver = function selectorListDriver() { return selectorListUniDriverFactory(base.$("[data-hook=\"".concat(modalSelectorDataHooks.selectorList, "\"]")), body); }; var mainLoaderDriver = function mainLoaderDriver() { return loaderUniDriverFactory(base.$("[data-hook=\"".concat(dataHooks.mainLoader, "\"]")), body); }; var nextPageLoaderDriver = function nextPageLoaderDriver() { return loaderUniDriverFactory(base.$("[data-hook=\"".concat(dataHooks.nextPageLoader, "\"]")), body); }; var cancelButtonDriver = function cancelButtonDriver() { return buttonDriverFactory(base.$('[data-hook="cancellation-button"]'), body); }; var okButtonDriver = function okButtonDriver() { return buttonDriverFactory(base.$('[data-hook="confirmation-button"]'), body); }; var subtitleTextDriver = function subtitleTextDriver() { return textUniDriverFactory(base.$("[data-hook=\"".concat(dataHooks.subtitle, "\"]")), body); }; var searchDriver = function searchDriver() { return searchUniDriverFactory(base.$("[data-hook=\"".concat(dataHooks.search, "\"]")), body); }; var getList = function getList() { return findInModalByDataHook(dataHooks.list); }; var getSelectorListContent = function getSelectorListContent() { return findInModalByDataHook(dataHooks.content); }; var getSelectors = function getSelectors() { return getList().$$("[data-hook=\"".concat(dataHooks.selector, "\"]")); }; var selectorDriverAt = function selectorDriverAt(i) { return selectorUniDriverFactory(getSelectors().get(i)); }; var _footerSelector = checkboxUniDriverFactory(base.$("[data-hook=\"".concat(dataHooks.toggleAllCheckbox, "\"]"), body)); return _objectSpread(_objectSpread({}, baseUniDriverFactory(base)), {}, { /** * Gets main loader driver. * @returns {LoaderUniDriver} */ mainLoaderDriver: mainLoaderDriver, /** * Gets next page loader driver. * @returns {LoaderUniDriver} */ nextPageLoaderDriver: nextPageLoaderDriver, /** * Gets cancel button driver. * @returns {ButtonUniDriver} */ cancelButtonDriver: cancelButtonDriver, /** * Gets ok button driver. * @returns {ButtonUniDriver} */ okButtonDriver: okButtonDriver, /** * Gets search driver. * @returns {SearchUniDriver} */ searchDriver: searchDriver, /** * Gets subtitle text driver. * @returns {TextUniDriver} */ subtitleTextDriver: subtitleTextDriver, /** * Gets title text. * @returns {Promise<string>} */ getTitle: function getTitle() { return findInModalByDataHook('header-layout-title').text(); }, /** * Clicks "x" button. * @returns {Promise<void>} */ clickOnClose: function clickOnClose() { return base.$('[data-hook="header-close-button"]').click(); }, /** * Checks weather empty state is shown. * @returns {Promise<boolean>} True if empty state is shown; false otherwise. */ showsEmptyState: function showsEmptyState() { return selectorListDriver().showsEmptyState(); }, /** * Gets empty state. * @returns {Promise<HTMLElement>} */ getEmptyState: function getEmptyState() { return selectorListDriver().getEmptyState(); }, /** * Checks weather no results found state is shown. * @returns {Promise<boolean>} True if no results found state is shown; false otherwise. */ showsNoResultsFoundState: function showsNoResultsFoundState() { return selectorListDriver().showsNoResultsFoundState(); }, /** * Gets no results found state. * @returns {Promise<HTMLElement>} */ getNoResultsFoundState: function getNoResultsFoundState() { return selectorListDriver().getNoResultsFoundState(); }, /** * Checks weather the list exists. * @returns {Promise<boolean>} True if list exists; false otherwise. */ listExists: function listExists() { return selectorListDriver().listExists(); }, /** * Returns the number of items in the list. * @returns {Promise<number>} */ numberOfItemsInList: function numberOfItemsInList() { return selectorListDriver().numberOfItemsInList(); }, /** * Gets the selector driver of the item at the passed index. * @param {number} i Item index * @returns {SelectorUniDriver} The selector driver. */ getSelectorDriverAt: function getSelectorDriverAt(i) { return selectorDriverAt(i); }, /** * Triggers "scroll" event on the list. * @returns {Promise<boolean>}. */ scrollDown: function () { var _scrollDown = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() { return _regeneratorRuntime.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: _context.next = 2; return getSelectorListContent().getNative(); case 2: return _context.abrupt("return", _context.sent.dispatchEvent(new Event('scroll'))); case 3: case "end": return _context.stop(); } } }, _callee); })); function scrollDown() { return _scrollDown.apply(this, arguments); } return scrollDown; }(), /** * Gets footer selector's driver. * @returns {CheckboxUniDriver} */ footerSelector: function footerSelector() { return _footerSelector; } }); };