UNPKG

wix-style-react

Version:
201 lines (177 loc) • 6.86 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _AddItem = _interopRequireDefault(require("../AddItem/AddItem.driver")); var _testkit = require("wix-ui-core/dist/src/testkit"); var _constants = require("./constants"); var _Tooltip = require("wix-ui-core/dist/src/components/tooltip/Tooltip.driver"); var imageViewerDriverFactory = function imageViewerDriverFactory(_ref) { var _element = _ref.element, wrapper = _ref.wrapper, eventTrigger = _ref.eventTrigger; var byHook = function byHook(dataHook) { return _element.querySelector("[data-hook=\"".concat(dataHook, "\"]")); }; var hasDataAttribute = function hasDataAttribute(dataAttr, el) { return el.getAttribute(dataAttr) === 'true'; }; var addItemDriver = function addItemDriver() { return (0, _AddItem["default"])({ element: byHook(_constants.dataHooks.addItem), eventTrigger: eventTrigger }); }; var tooltipTestkit = function tooltipTestkit(dataHook) { return (0, _testkit.tooltipTestkitFactory)({ wrapper: _element, dataHook: dataHook }); }; var getImageElement = function getImageElement() { return byHook(_constants.dataHooks.image); }; var getPreviousImageElement = function getPreviousImageElement() { return byHook(_constants.dataHooks.previousImage); }; var isImagesContainerElementVisible = function isImagesContainerElementVisible() { return hasDataAttribute(_constants.dataAttributes.containerVisible, byHook(_constants.dataHooks.imagesContainer)); }; var isImageElementVisible = function isImageElementVisible(imgElement) { return hasDataAttribute(_constants.dataAttributes.imageVisible, imgElement); }; var hoverElement = function hoverElement() { return eventTrigger.mouseOver(_element); }; var showButtons = hoverElement; return { exists: function exists() { return !!_element; }, getElement: function getElement() { return _element; }, // for backward compatibility element: function element() { return _element; }, // same as unidriver language updateExists: function updateExists() { return !!byHook(_constants.dataHooks.update); }, updateButtonExists: function updateButtonExists() { return !!byHook(_constants.dataHooks.update); }, removeButtonExists: function removeButtonExists() { return !!byHook(_constants.dataHooks.remove); }, downloadButtonExists: function downloadButtonExists() { return !!byHook(_constants.dataHooks.download); }, moreButtonExists: function moreButtonExists() { return !!byHook(_constants.dataHooks.more); }, clickAdd: function clickAdd() { return addItemDriver().click(); }, clickUpdate: function clickUpdate() { showButtons(); eventTrigger.click(byHook(_constants.dataHooks.update)); }, clickDownload: function clickDownload() { showButtons(); eventTrigger.click(byHook(_constants.dataHooks.download)); }, clickRemove: function clickRemove() { showButtons(); eventTrigger.click(byHook(_constants.dataHooks.remove)); }, getContainerStyles: function getContainerStyles() { return _element.getAttribute('style'); }, getAddTooltipContent: function getAddTooltipContent() { return addItemDriver().getTooltipContent(); }, getUpdateTooltipContent: function getUpdateTooltipContent() { var updateTooltip = tooltipTestkit(_constants.dataHooks.updateTooltip); showButtons(); updateTooltip.mouseEnter(); return updateTooltip.getContentElement().textContent; }, getDownloadTooltipContent: function getDownloadTooltipContent() { var downloadTooltip = tooltipTestkit(_constants.dataHooks.downloadTooltip); showButtons(); downloadTooltip.mouseEnter(); return downloadTooltip.getContentElement().textContent; }, getRemoveTooltipContent: function getRemoveTooltipContent() { var removeTooltip = tooltipTestkit(_constants.dataHooks.removeTooltip); showButtons(); removeTooltip.mouseEnter(); return removeTooltip.getContentElement().textContent; }, getMoreTooltipContent: function getMoreTooltipContent() { var moreTooltip = tooltipTestkit(_constants.dataHooks.moreTooltip); showButtons(); moreTooltip.mouseEnter(); return moreTooltip.getContentElement().textContent; }, isDisabled: function isDisabled() { return _element.getAttribute('data-disabled') === 'true'; }, isAddItemVisible: function isAddItemVisible() { return !!byHook(_constants.dataHooks.addItem); }, isLoaderVisible: function isLoaderVisible() { return !!byHook(_constants.dataHooks.loader); }, isImageLoaded: function isImageLoaded() { return hasDataAttribute(_constants.dataAttributes.imageLoaded, _element); }, isImageVisible: function isImageVisible() { var image = getImageElement(); return !!image && isImageElementVisible(image) && isImagesContainerElementVisible(); }, isPreviousImageVisible: function isPreviousImageVisible() { var previousImage = getPreviousImageElement(); return !!previousImage && isImageElementVisible(previousImage) && isImagesContainerElementVisible(); }, getImageUrl: function getImageUrl() { var imageUrl = getImageElement(); return imageUrl && imageUrl.getAttribute('src'); }, getPreviousImageUrl: function getPreviousImageUrl() { var previousImage = getPreviousImageElement(); return previousImage && previousImage.getAttribute('src'); }, hover: function hover() { return hoverElement(); }, // Status /** Return true if the given status is displayed */ hasStatus: function hasStatus(status) { var statusEl = _element.querySelector("[data-hook='".concat(_constants.dataHooks.errorTooltip, "']")); return (statusEl && statusEl.getAttribute('data-status')) === status; }, /** If there's a status message, returns its text value */ getStatusMessage: function getStatusMessage() { var tooltipText = null; var tooltipDriver = (0, _Tooltip.tooltipDriverFactory)({ element: _element.querySelector('[data-hook="status-indicator-tooltip"]'), eventTrigger: eventTrigger }); if (tooltipDriver.exists()) { tooltipDriver.mouseEnter(); var contentElement = tooltipDriver.getContentElement(); if (contentElement) { tooltipText = contentElement.textContent; } } return tooltipText; } }; }; var _default = imageViewerDriverFactory; exports["default"] = _default;