wix-style-react
Version:
264 lines (223 loc) • 10.3 kB
JavaScript
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, findByHook, findByHookAtIndex, countByHook } from '../../test/utils/unidriver';
import { dataHooks } from './constants';
import { buttonDriverFactory } from '../Button/Button.uni.driver';
import { tooltipDriverFactory } from '../Tooltip/Tooltip.uni.driver';
import { PopoverMenuDriver } from '../PopoverMenu/PopoverMenu.uni.driver';
export var tableActionCellUniDriverFactory = function tableActionCellUniDriverFactory(base, body) {
var getPrimaryActionButtonDriver = function getPrimaryActionButtonDriver() {
return buttonDriverFactory(findByHook(base, dataHooks.primaryAction));
};
var getVisibleActionTooltipDriver = function getVisibleActionTooltipDriver(actionIndex) {
return tooltipDriverFactory(findByHookAtIndex(base, dataHooks.visibleActionTooltip, actionIndex), body);
};
var getVisibleActionByDataHookTooltipDriver = function getVisibleActionByDataHookTooltipDriver(dataHook) {
return tooltipDriverFactory(findByHook(base, dataHook), body);
};
var getVisibleActionButtonDriver = function getVisibleActionButtonDriver(actionIndex) {
return buttonDriverFactory(findByHookAtIndex(base, dataHooks.visibleAction, actionIndex));
};
var getVisibleActionByDataHookButtonDriver = function getVisibleActionByDataHookButtonDriver(dataHook) {
return buttonDriverFactory(findByHook(base, dataHook));
};
var getHiddenActionsPopoverMenuDriver = function getHiddenActionsPopoverMenuDriver() {
return PopoverMenuDriver(findByHook(base, dataHooks.popoverMenu), body);
};
return _objectSpread(_objectSpread({}, baseUniDriverFactory(base, body)), {}, {
/**
* Get the driver of the primary action <Button/> from the action column
* @returns {Promise<buttonDriverFactory>}
*/
getPrimaryActionButtonDriver: getPrimaryActionButtonDriver,
/**
* Clicks the primary action button of the action column
* @returns {Promise<void>}
*/
clickPrimaryActionButton: function () {
var _clickPrimaryActionButton = _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 getPrimaryActionButtonDriver().click();
case 2:
return _context.abrupt("return", _context.sent);
case 3:
case "end":
return _context.stop();
}
}
}, _callee);
}));
function clickPrimaryActionButton() {
return _clickPrimaryActionButton.apply(this, arguments);
}
return clickPrimaryActionButton;
}(),
/**
* Checks whether the primary action button is disabled
* @returns {Promise<boolean>}
*/
getIsPrimaryActionButtonDisabled: function () {
var _getIsPrimaryActionButtonDisabled = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {
return _regeneratorRuntime.wrap(function _callee2$(_context2) {
while (1) {
switch (_context2.prev = _context2.next) {
case 0:
_context2.next = 2;
return getPrimaryActionButtonDriver().isButtonDisabled();
case 2:
return _context2.abrupt("return", _context2.sent);
case 3:
case "end":
return _context2.stop();
}
}
}, _callee2);
}));
function getIsPrimaryActionButtonDisabled() {
return _getIsPrimaryActionButtonDisabled.apply(this, arguments);
}
return getIsPrimaryActionButtonDisabled;
}(),
/**
* Checks whether the primary action button has an prefix icon
* @returns {Promise<boolean>}
*/
primaryActionButtonPrefixIconExists: function () {
var _primaryActionButtonPrefixIconExists = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3() {
return _regeneratorRuntime.wrap(function _callee3$(_context3) {
while (1) {
switch (_context3.prev = _context3.next) {
case 0:
_context3.next = 2;
return getPrimaryActionButtonDriver().isPrefixIconExists();
case 2:
return _context3.abrupt("return", _context3.sent);
case 3:
case "end":
return _context3.stop();
}
}
}, _callee3);
}));
function primaryActionButtonPrefixIconExists() {
return _primaryActionButtonPrefixIconExists.apply(this, arguments);
}
return primaryActionButtonPrefixIconExists;
}(),
/**
* Checks whether the primary action button has an suffix icon
* @returns {Promise<boolean>}
*/
primaryActionButtonSuffixIconExists: function () {
var _primaryActionButtonSuffixIconExists = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee4() {
return _regeneratorRuntime.wrap(function _callee4$(_context4) {
while (1) {
switch (_context4.prev = _context4.next) {
case 0:
_context4.next = 2;
return getPrimaryActionButtonDriver().isSuffixIconExists();
case 2:
return _context4.abrupt("return", _context4.sent);
case 3:
case "end":
return _context4.stop();
}
}
}, _callee4);
}));
function primaryActionButtonSuffixIconExists() {
return _primaryActionButtonSuffixIconExists.apply(this, arguments);
}
return primaryActionButtonSuffixIconExists;
}(),
/**
* Get the number of the visible secondary actions
* @returns {Promise<number>} number of visible secondary actions
*/
getVisibleActionsCount: function getVisibleActionsCount() {
return countByHook(base, dataHooks.visibleAction);
},
/**
* Get the number of hidden secondary actions (in the <PopoverMenu/>, requires it to be open)
* @returns {Promise<number>} number of hidden secondary actions
*/
getHiddenActionsCount: function getHiddenActionsCount() {
return getHiddenActionsPopoverMenuDriver().childrenCount();
},
/**
* Gets a specific visible secondary action <Tooltip/> driver
* @param {actionIndex} actionIndex
* @returns {Promise<tooltipDriverFactory>}
*/
getVisibleActionTooltipDriver: getVisibleActionTooltipDriver,
/**
* Get the driver of a specific visible secondary action <Tooltip/> by its specified dataHook
* @param {dataHook} tooltip dataHook
* @returns {Promise<tooltipDriverFactory>}
*/
getVisibleActionByDataHookTooltipDriver: getVisibleActionByDataHookTooltipDriver,
/**
* Get the driver of a specific visible secondary action <Button/>
* @param {actionIndex} actionIndex
* @returns {Promise<buttonDriverFactory>}
*/
getVisibleActionButtonDriver: getVisibleActionButtonDriver,
/**
* Gets a specific visible secondary action <Button/> driver by its specified dataHook
* @param {dataHook} button dataHook
* @returns {Promise<buttonDriverFactory>} visible action button driver
*/
getVisibleActionByDataHookButtonDriver: getVisibleActionByDataHookButtonDriver,
/**
* Gets the hidden secondary action <PopoverMenu/> driver
* @returns {Promise<PopoverMenuUniDriver>}
*/
getHiddenActionsPopoverMenuDriver: getHiddenActionsPopoverMenuDriver,
/**
* Clicks on a visible secondary action
* @param {actionIndex} actionIndex
* @returns {Promise<void>}
*/
clickVisibleAction: function clickVisibleAction(actionIndex) {
return getVisibleActionButtonDriver(actionIndex).click();
},
/**
* Clicks on a visible secondary action by its specified dataHook
* @param {actionDataHook} actionDataHook
* @returns {Promise<void>}
*/
clickVisibleActionByDataHook: function clickVisibleActionByDataHook(actionDataHook) {
return getVisibleActionByDataHookButtonDriver(actionDataHook).click();
},
/**
* Clicks on the hidden secondary actions <PopoverMenu/>
* @returns {Promise<void>}
*/
clickPopoverMenu: function clickPopoverMenu() {
return getHiddenActionsPopoverMenuDriver().getTriggerElement(dataHooks.triggerElement).click();
},
/**
* Clicks on a hidden secondary action (requires the <PopoverMenu/> to be open)
* @param {actionIndex} actionIndex
* @returns {Promise<void>}
*/
clickHiddenAction: function clickHiddenAction(actionIndex) {
return getHiddenActionsPopoverMenuDriver().clickAtChild(actionIndex);
},
/**
* Clicks hidden action by data hook
* @param {actionDataHook} actionDataHook
* @returns {Promise<void>}
*/
clickHiddenActionByDataHook: function clickHiddenActionByDataHook(actionDataHook) {
return getHiddenActionsPopoverMenuDriver().clickAtChildByDataHook(actionDataHook);
}
});
};