UNPKG

wix-style-react

Version:
138 lines (111 loc) 5.57 kB
import { popoverMenuTestkitFactory } from '../../testkit'; import { tooltipDriverFactory } from "wix-ui-core/dist/es/src/components/tooltip/Tooltip.driver"; import { dataHooks } from './constants'; import buttonDriverFactory from '../Button/Button.legacy.driver'; var tableActionCellDriverFactory = function tableActionCellDriverFactory(_ref) { var _element = _ref.element, wrapper = _ref.wrapper, eventTrigger = _ref.eventTrigger; var visibleActions = function visibleActions() { return _element.querySelectorAll("[data-hook=\"".concat(dataHooks.visibleAction, "\"]")); }; var getPrimaryActionButtonDriver = function getPrimaryActionButtonDriver() { return buttonDriverFactory({ element: _element.querySelector("[data-hook=\"".concat(dataHooks.primaryAction, "\"]")) }); }; var getVisibleActionTooltipDriver = function getVisibleActionTooltipDriver(actionIndex) { return tooltipDriverFactory({ element: _element.querySelectorAll("[data-hook=\"".concat(dataHooks.visibleActionTooltip, "\"]"))[actionIndex], eventTrigger: eventTrigger }); }; var getVisibleActionByDataHookTooltipDriver = function getVisibleActionByDataHookTooltipDriver(dataHook) { return tooltipDriverFactory({ element: _element.querySelector("[data-hook=\"".concat(dataHook, "\"]")), eventTrigger: eventTrigger }); }; var getVisibleActionButtonDriver = function getVisibleActionButtonDriver(actionIndex) { return buttonDriverFactory({ element: visibleActions()[actionIndex] }); }; var getVisibleActionByDataHookButtonDriver = function getVisibleActionByDataHookButtonDriver(dataHook) { return buttonDriverFactory({ element: _element.querySelector("[data-hook=\"".concat(dataHook, "\"]")) }); }; var getHiddenActionsPopoverMenuDriver = function getHiddenActionsPopoverMenuDriver() { return popoverMenuTestkitFactory({ wrapper: wrapper, dataHook: dataHooks.popoverMenu }); }; return { /** Get the element */ element: function element() { return _element; }, /** Whether the element exists */ exists: function exists() { return !!_element; }, /** Get the driver of the primary action <Button/> from the action column */ getPrimaryActionButtonDriver: getPrimaryActionButtonDriver, /** Click the primary action button from the action column */ clickPrimaryActionButton: function clickPrimaryActionButton() { return getPrimaryActionButtonDriver().click(); }, /** Get whether the primary action button is disabled */ getIsPrimaryActionButtonDisabled: function getIsPrimaryActionButtonDisabled() { return getPrimaryActionButtonDriver().isButtonDisabled(); }, /** Get whether the primary action button prefix icon exists */ primaryActionButtonPrefixIconExists: function primaryActionButtonPrefixIconExists() { return getPrimaryActionButtonDriver().isPrefixIconExists(); }, /** Get whether the primary action button suffix icon exists */ primaryActionButtonSuffixIconExists: function primaryActionButtonSuffixIconExists() { return getPrimaryActionButtonDriver().isSuffixIconExists(); }, /** Get the number of the visible secondary actions */ getVisibleActionsCount: function getVisibleActionsCount() { return visibleActions().length; }, /** Get the number of hidden secondary actions (in the <PopoverMenu/>, requires it to be open) */ getHiddenActionsCount: function getHiddenActionsCount() { return getHiddenActionsPopoverMenuDriver().childrenCount(); }, /** Get the driver of a specific visible secondary action <Tooltip/> */ getVisibleActionTooltipDriver: getVisibleActionTooltipDriver, /** Get the driver of a specific visible secondary action <Tooltip/> by its specified dataHook */ getVisibleActionByDataHookTooltipDriver: getVisibleActionByDataHookTooltipDriver, /** Get the driver of a specific visible secondary action <Button/> */ getVisibleActionButtonDriver: getVisibleActionButtonDriver, /** Get the driver of a specific visible secondary action <Button/> by its specified dataHook */ getVisibleActionByDataHookButtonDriver: getVisibleActionByDataHookButtonDriver, /** Get the driver of the hidden secondary action <PopoverMenu/> */ getHiddenActionsPopoverMenuDriver: getHiddenActionsPopoverMenuDriver, /** Click an a visible secondary action */ clickVisibleAction: function clickVisibleAction(actionIndex) { return getVisibleActionButtonDriver(actionIndex).click(); }, /** Click an a visible secondary action by its specified dataHook */ clickVisibleActionByDataHook: function clickVisibleActionByDataHook(actionDataHook) { return getVisibleActionByDataHookButtonDriver(actionDataHook).click(); }, /** Click on the hidden secondary actions <PopoverMenu/> */ clickPopoverMenu: function clickPopoverMenu() { return getHiddenActionsPopoverMenuDriver().getTriggerElement(dataHooks.triggerElement).click(); }, /** Click on a hidden secondary action (requires the <PopoverMenu/> to be open) */ clickHiddenAction: function clickHiddenAction(actionIndex) { return getHiddenActionsPopoverMenuDriver().clickAtChild(actionIndex); }, clickHiddenActionByDataHook: function clickHiddenActionByDataHook(actionDataHook) { return getHiddenActionsPopoverMenuDriver().clickAtChildByDataHook(actionDataHook); } }; }; export default tableActionCellDriverFactory;