UNPKG

wix-style-react

Version:
574 lines (461 loc) • 18.7 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.imageViewerUniDriverFactory = void 0; var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator")); var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator")); var _baseDriver = require("wix-ui-test-utils/base-driver"); var _IconButtonUni = require("../IconButton/IconButton.uni.driver"); var _AddItemUni = require("../AddItem/AddItem.uni.driver"); var _TooltipUni = require("../Tooltip/Tooltip.uni.driver"); var _constants = require("./constants"); var _StatusIndicatorUni = require("../StatusIndicator/StatusIndicator.uni.driver"); var _PopoverMenuUni = require("../PopoverMenu/PopoverMenu.uni.driver"); 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) { (0, _defineProperty2["default"])(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; } var imageViewerUniDriverFactory = function imageViewerUniDriverFactory(base, body) { var find = function find(dataHook) { return base.$("[data-hook=\"".concat(dataHook, "\"]")); }; var hasDataAttribute = /*#__PURE__*/function () { var _ref = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(dataAttr, el) { return _regenerator["default"].wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: _context.next = 2; return el.attr(dataAttr); case 2: _context.t0 = _context.sent; return _context.abrupt("return", _context.t0 === 'true'); case 4: case "end": return _context.stop(); } } }, _callee); })); return function hasDataAttribute(_x, _x2) { return _ref.apply(this, arguments); }; }(); var hoverElement = function hoverElement() { return base.hover(); }; var showButtons = hoverElement; var isImagesContainerElementVisible = function isImagesContainerElementVisible() { return hasDataAttribute(_constants.dataAttributes.containerVisible, find(_constants.dataHooks.imagesContainer)); }; var isImageElementVisible = function isImageElementVisible(imgElement) { return hasDataAttribute(_constants.dataAttributes.imageVisible, imgElement); }; var addItemTestkit = (0, _AddItemUni.addItemUniDriverFactory)(find(_constants.dataHooks.addItem), body); var tooltipTestkit = function tooltipTestkit(dataHook) { return (0, _TooltipUni.tooltipDriverFactory)(find(dataHook), body); }; var iconButtonTestkit = function iconButtonTestkit(dataHook) { return (0, _IconButtonUni.iconButtonDriverFactory)(find(dataHook)); }; var popoverMenuDriver = function popoverMenuDriver(dataHook) { return (0, _PopoverMenuUni.PopoverMenuDriver)(find(dataHook), body); }; var removeIconButton = iconButtonTestkit(_constants.dataHooks.remove); var downloadIconButton = iconButtonTestkit(_constants.dataHooks.download); var updateIconButton = iconButtonTestkit(_constants.dataHooks.update); var moreIconButton = iconButtonTestkit(_constants.dataHooks.more); var updateTooltip = tooltipTestkit(_constants.dataHooks.updateTooltip); var downloadTooltip = tooltipTestkit(_constants.dataHooks.downloadTooltip); var removeTooltip = tooltipTestkit(_constants.dataHooks.removeTooltip); var moreTooltip = tooltipTestkit(_constants.dataHooks.moreTooltip); var getStatusIndicatorDriver = function getStatusIndicatorDriver() { return (0, _StatusIndicatorUni.statusIndicatorDriverFactory)(base.$("[data-hook=\"".concat(_constants.dataHooks.errorTooltip, "\"]")), body); }; var moreButtonExists = function moreButtonExists() { return moreIconButton.exists(); }; var clickMore = function clickMore() { return showButtons().then(function () { return moreIconButton.click(); }); }; return _objectSpread(_objectSpread({}, (0, _baseDriver.baseUniDriverFactory)(base)), {}, { updateExists: function updateExists() { return !!find(_constants.dataHooks.update); }, updateButtonExists: function updateButtonExists() { return updateIconButton.exists(); }, removeButtonExists: function removeButtonExists() { return removeIconButton.exists(); }, downloadButtonExists: function downloadButtonExists() { return downloadIconButton.exists(); }, moreButtonExists: moreButtonExists, clickAdd: function clickAdd() { return addItemTestkit.click(); }, clickUpdate: function clickUpdate() { return showButtons().then(function () { return updateIconButton.click(); }); }, clickDownload: function () { var _clickDownload = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() { var moreActions; return _regenerator["default"].wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: _context2.next = 2; return showButtons(); case 2: _context2.next = 4; return moreButtonExists(); case 4: if (!_context2.sent) { _context2.next = 11; break; } _context2.next = 7; return clickMore(); case 7: moreActions = popoverMenuDriver(_constants.dataHooks.actionsMenu); return _context2.abrupt("return", moreActions.clickAtChild(0)); case 11: return _context2.abrupt("return", downloadIconButton.click()); case 12: case "end": return _context2.stop(); } } }, _callee2); })); function clickDownload() { return _clickDownload.apply(this, arguments); } return clickDownload; }(), clickRemove: function () { var _clickRemove = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3() { var moreActions; return _regenerator["default"].wrap(function _callee3$(_context3) { while (1) { switch (_context3.prev = _context3.next) { case 0: _context3.next = 2; return showButtons(); case 2: _context3.next = 4; return moreButtonExists(); case 4: if (!_context3.sent) { _context3.next = 11; break; } _context3.next = 7; return clickMore(); case 7: moreActions = popoverMenuDriver(_constants.dataHooks.actionsMenu); return _context3.abrupt("return", moreActions.clickAtChild(1)); case 11: return _context3.abrupt("return", removeIconButton.click()); case 12: case "end": return _context3.stop(); } } }, _callee3); })); function clickRemove() { return _clickRemove.apply(this, arguments); } return clickRemove; }(), getContainerStyles: function getContainerStyles() { return base.attr('style'); }, getAddTooltipContent: function getAddTooltipContent() { return addItemTestkit.getTooltipContent(); }, getUpdateTooltipContent: function getUpdateTooltipContent() { return updateTooltip.getTooltipText(); }, getDownloadTooltipContent: function getDownloadTooltipContent() { return downloadTooltip.getTooltipText(); }, getRemoveTooltipContent: function getRemoveTooltipContent() { return removeTooltip.getTooltipText(); }, getMoreTooltipContent: function getMoreTooltipContent() { return moreTooltip.getTooltipText(); }, isDisabled: function isDisabled() { return base.attr(_constants.dataAttributes.disabled).then(function (x) { return x === 'true'; }); }, isAddItemVisible: function isAddItemVisible() { return find(_constants.dataHooks.addItem).exists(); }, isLoaderVisible: function isLoaderVisible() { return find(_constants.dataHooks.loader).exists(); }, isImageLoaded: function isImageLoaded() { return base.$('[data-was-image-loaded]').exists(); }, isImageVisible: function () { var _isImageVisible = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4() { var image; return _regenerator["default"].wrap(function _callee4$(_context4) { while (1) { switch (_context4.prev = _context4.next) { case 0: image = find(_constants.dataHooks.image); _context4.next = 3; return image.exists(); case 3: _context4.t2 = _context4.sent; if (!_context4.t2) { _context4.next = 8; break; } _context4.next = 7; return image.attr('src'); case 7: _context4.t2 = !!_context4.sent; case 8: _context4.t1 = _context4.t2; if (!_context4.t1) { _context4.next = 13; break; } _context4.next = 12; return isImageElementVisible(image); case 12: _context4.t1 = _context4.sent; case 13: _context4.t0 = _context4.t1; if (!_context4.t0) { _context4.next = 18; break; } _context4.next = 17; return isImagesContainerElementVisible(); case 17: _context4.t0 = _context4.sent; case 18: return _context4.abrupt("return", _context4.t0); case 19: case "end": return _context4.stop(); } } }, _callee4); })); function isImageVisible() { return _isImageVisible.apply(this, arguments); } return isImageVisible; }(), isPreviousImageVisible: function () { var _isPreviousImageVisible = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee5() { var previousImage; return _regenerator["default"].wrap(function _callee5$(_context5) { while (1) { switch (_context5.prev = _context5.next) { case 0: previousImage = find(_constants.dataHooks.previousImage); _context5.next = 3; return previousImage.exists(); case 3: _context5.t2 = _context5.sent; if (!_context5.t2) { _context5.next = 8; break; } _context5.next = 7; return previousImage.attr('src'); case 7: _context5.t2 = !!_context5.sent; case 8: _context5.t1 = _context5.t2; if (!_context5.t1) { _context5.next = 13; break; } _context5.next = 12; return isImageElementVisible(previousImage); case 12: _context5.t1 = _context5.sent; case 13: _context5.t0 = _context5.t1; if (!_context5.t0) { _context5.next = 18; break; } _context5.next = 17; return isImagesContainerElementVisible(); case 17: _context5.t0 = _context5.sent; case 18: return _context5.abrupt("return", _context5.t0); case 19: case "end": return _context5.stop(); } } }, _callee5); })); function isPreviousImageVisible() { return _isPreviousImageVisible.apply(this, arguments); } return isPreviousImageVisible; }(), getImageUrl: function () { var _getImageUrl = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee6() { var image; return _regenerator["default"].wrap(function _callee6$(_context6) { while (1) { switch (_context6.prev = _context6.next) { case 0: image = find(_constants.dataHooks.image); _context6.next = 3; return image.exists(); case 3: _context6.t0 = _context6.sent; if (!_context6.t0) { _context6.next = 8; break; } _context6.next = 7; return image.attr('src'); case 7: _context6.t0 = _context6.sent; case 8: return _context6.abrupt("return", _context6.t0); case 9: case "end": return _context6.stop(); } } }, _callee6); })); function getImageUrl() { return _getImageUrl.apply(this, arguments); } return getImageUrl; }(), getPreviousImageUrl: function () { var _getPreviousImageUrl = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee7() { var previousImage; return _regenerator["default"].wrap(function _callee7$(_context7) { while (1) { switch (_context7.prev = _context7.next) { case 0: previousImage = find(_constants.dataHooks.previousImage); _context7.next = 3; return previousImage.exists(); case 3: _context7.t0 = _context7.sent; if (!_context7.t0) { _context7.next = 8; break; } _context7.next = 7; return previousImage.attr('src'); case 7: _context7.t0 = _context7.sent; case 8: return _context7.abrupt("return", _context7.t0); case 9: case "end": return _context7.stop(); } } }, _callee7); })); function getPreviousImageUrl() { return _getPreviousImageUrl.apply(this, arguments); } return getPreviousImageUrl; }(), hover: hoverElement, // Status /** Return true if there's a status */ hasStatus: function () { var _hasStatus = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee8(status) { var statusIndicatorDriver; return _regenerator["default"].wrap(function _callee8$(_context8) { while (1) { switch (_context8.prev = _context8.next) { case 0: statusIndicatorDriver = getStatusIndicatorDriver(); _context8.next = 3; return statusIndicatorDriver.exists(); case 3: if (!_context8.sent) { _context8.next = 9; break; } _context8.t0 = status; _context8.next = 7; return statusIndicatorDriver.getStatus(); case 7: _context8.t1 = _context8.sent; return _context8.abrupt("return", _context8.t0 === _context8.t1); case 9: return _context8.abrupt("return", false); case 10: case "end": return _context8.stop(); } } }, _callee8); })); function hasStatus(_x3) { return _hasStatus.apply(this, arguments); } return hasStatus; }(), /** If there's a status message, returns its text value */ getStatusMessage: function () { var _getStatusMessage = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee9() { var statusIndicatorDriver, tooltipText; return _regenerator["default"].wrap(function _callee9$(_context9) { while (1) { switch (_context9.prev = _context9.next) { case 0: statusIndicatorDriver = getStatusIndicatorDriver(); tooltipText = null; _context9.next = 4; return statusIndicatorDriver.hasMessage(); case 4: if (!_context9.sent) { _context9.next = 8; break; } _context9.next = 7; return statusIndicatorDriver.getMessage(); case 7: tooltipText = _context9.sent; case 8: return _context9.abrupt("return", tooltipText); case 9: case "end": return _context9.stop(); } } }, _callee9); })); function getStatusMessage() { return _getStatusMessage.apply(this, arguments); } return getStatusMessage; }() }); }; exports.imageViewerUniDriverFactory = imageViewerUniDriverFactory;