UNPKG

wix-style-react

Version:
283 lines (226 loc) • 10.2 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.tooltipDriverFactory = void 0; var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator")); var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator")); var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _TooltipUni = require("wix-ui-core/dist/src/components/tooltip/Tooltip.uni.driver"); var _unidriver = require("../../test/utils/unidriver"); 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 tooltipDriverFactory = function tooltipDriverFactory(base, body) { var coreTooltipDriver = (0, _TooltipUni.tooltipDriverFactory)(base, body); return _objectSpread(_objectSpread({}, (0, _unidriver.baseUniDriverFactory)(base)), {}, { /** returns true if trigger element exists on the DOM */ exists: coreTooltipDriver.exists, /** returns true if tooltip element exists on the DOM */ tooltipExists: coreTooltipDriver.tooltipExists, /** mouse over the target element */ mouseEnter: function () { var _mouseEnter = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() { return _regenerator["default"].wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: _context.t0 = base.type; _context.next = _context.t0 === 'react' ? 3 : _context.t0 === 'puppeteer' ? 4 : 5; break; case 3: return _context.abrupt("return", coreTooltipDriver.mouseEnter()); case 4: return _context.abrupt("return", base.hover()); case 5: return _context.abrupt("return"); case 6: case "end": return _context.stop(); } } }, _callee); })); function mouseEnter() { return _mouseEnter.apply(this, arguments); } return mouseEnter; }(), /** mouse leaves the target element */ mouseLeave: function () { var _mouseLeave = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3() { var _yield$baseUniDriverF, element; return _regenerator["default"].wrap(function _callee3$(_context3) { while (1) { switch (_context3.prev = _context3.next) { case 0: _context3.t0 = base.type; _context3.next = _context3.t0 === 'react' ? 3 : _context3.t0 === 'puppeteer' ? 4 : 13; break; case 3: return _context3.abrupt("return", coreTooltipDriver.mouseLeave()); case 4: _context3.next = 6; return (0, _unidriver.baseUniDriverFactory)(base).element(); case 6: _yield$baseUniDriverF = _context3.sent; element = _yield$baseUniDriverF.element; _context3.next = 10; return page.evaluate( /*#__PURE__*/function () { var _ref = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2(element) { var event; return _regenerator["default"].wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: event = new MouseEvent('mouseout', { bubbles: true, view: window, cancelable: true }); _context2.next = 3; return element.dispatchEvent(event); case 3: case "end": return _context2.stop(); } } }, _callee2); })); return function (_x) { return _ref.apply(this, arguments); }; }(), element); case 10: _context3.next = 12; return page.waitFor(200); case 12: return _context3.abrupt("return"); case 13: return _context3.abrupt("return"); case 14: case "end": return _context3.stop(); } } }, _callee3); })); function mouseLeave() { return _mouseLeave.apply(this, arguments); } return mouseLeave; }(), /** returns tooltips content value in string */ getTooltipText: function () { var _getTooltipText = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4() { var contentHook, contentSelector, element, text; return _regenerator["default"].wrap(function _callee4$(_context4) { while (1) { switch (_context4.prev = _context4.next) { case 0: _context4.t0 = base.type; _context4.next = _context4.t0 === 'react' ? 3 : _context4.t0 === 'puppeteer' ? 4 : 19; break; case 3: return _context4.abrupt("return", coreTooltipDriver.getTooltipText()); case 4: _context4.next = 6; return base.hover(); case 6: _context4.next = 8; return base.attr('data-content-hook'); case 8: contentHook = _context4.sent; contentSelector = "[data-content-element=\"".concat(contentHook, "\"]"); _context4.next = 12; return body.$(contentSelector); case 12: element = _context4.sent; _context4.next = 15; return element.text(); case 15: text = _context4.sent; _context4.next = 18; return tooltipDriverFactory(base, body).mouseLeave(); case 18: return _context4.abrupt("return", text); case 19: return _context4.abrupt("return"); case 20: case "end": return _context4.stop(); } } }, _callee4); })); function getTooltipText() { return _getTooltipText.apply(this, arguments); } return getTooltipText; }(), /** Clicks outside the tooltip element in order to dismiss it */ clickOutside: function () { var _clickOutside = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee5() { return _regenerator["default"].wrap(function _callee5$(_context5) { while (1) { switch (_context5.prev = _context5.next) { case 0: _context5.t0 = base.type; _context5.next = _context5.t0 === 'react' ? 3 : _context5.t0 === 'puppeteer' ? 4 : 7; break; case 3: return _context5.abrupt("return", coreTooltipDriver.clickOutside()); case 4: _context5.next = 6; return page.evaluate(function () { document.querySelector('body').dispatchEvent(new MouseEvent('mousedown')); document.querySelector('body').dispatchEvent(new MouseEvent('mouseup')); }); case 6: return _context5.abrupt("return"); case 7: return _context5.abrupt("return"); case 8: case "end": return _context5.stop(); } } }, _callee5); })); function clickOutside() { return _clickOutside.apply(this, arguments); } return clickOutside; }(), /** * Checks whether tooltip has a given size * @param {boolean} sizeName The tooltip size * @return {Promise<boolean>} */ hasSize: function () { var _hasSize = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee6(sizeName) { return _regenerator["default"].wrap(function _callee6$(_context6) { while (1) { switch (_context6.prev = _context6.next) { case 0: _context6.next = 2; return base.attr("data-size"); case 2: _context6.t0 = _context6.sent; _context6.t1 = sizeName; return _context6.abrupt("return", _context6.t0 === _context6.t1); case 5: case "end": return _context6.stop(); } } }, _callee6); })); function hasSize(_x2) { return _hasSize.apply(this, arguments); } return hasSize; }() }); }; exports.tooltipDriverFactory = tooltipDriverFactory;