UNPKG

wix-style-react

Version:
227 lines (183 loc) • 6.17 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); var _exportNames = { findByHook: true, findByHookAtIndex: true, countByHook: true, getElement: true, getDataAttributeValue: true, isElementFocused: true, baseUniDriverFactory: true }; exports.baseUniDriverFactory = exports.isElementFocused = exports.getDataAttributeValue = exports.getElement = exports.countByHook = exports.findByHookAtIndex = exports.findByHook = void 0; var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator")); var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator")); var _ReactBase = require("./ReactBase"); Object.keys(_ReactBase).forEach(function (key) { if (key === "default" || key === "__esModule") return; if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return; if (key in exports && exports[key] === _ReactBase[key]) return; Object.defineProperty(exports, key, { enumerable: true, get: function get() { return _ReactBase[key]; } }); }); var _baseDriver = require("wix-ui-test-utils/base-driver"); /** * Find element by `data-hook` (exact match) * @param {UniDriver} base * @param {string} hook */ var findByHook = function findByHook(base, hook) { return base.$("[data-hook=\"".concat(hook, "\"]")); }; /** * Find element by `data-hook` at index (exact match) * @param {UniDriver} base * @param {string} hook * @param index index */ exports.findByHook = findByHook; var findByHookAtIndex = function findByHookAtIndex(base, hook, index) { return base.$$("[data-hook=\"".concat(hook, "\"]")).get(index); }; /** * Counts elements by `data-hook` (exact match) * @param {UniDriver} base * @param {string} hook */ exports.findByHookAtIndex = findByHookAtIndex; var countByHook = function countByHook(base, hook) { return base.$$("[data-hook=\"".concat(hook, "\"]")).count(); }; /** * Wrapper function which returns null if base doesn't exist. * @param {UniDriver} base */ exports.countByHook = countByHook; var getElement = /*#__PURE__*/function () { var _ref = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(base) { return _regenerator["default"].wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: _context.next = 2; return base.exists(); case 2: if (!_context.sent) { _context.next = 6; break; } _context.t0 = base; _context.next = 7; break; case 6: _context.t0 = null; case 7: return _context.abrupt("return", _context.t0); case 8: case "end": return _context.stop(); } } }, _callee); })); return function getElement(_x) { return _ref.apply(this, arguments); }; }(); /** * Gets data attribute value * @param {UniDriver} base * @param {string} attr */ exports.getElement = getElement; var getDataAttributeValue = /*#__PURE__*/function () { var _ref2 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2(base, attr) { return _regenerator["default"].wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: return _context2.abrupt("return", base.attr(attr)); case 1: case "end": return _context2.stop(); } } }, _callee2); })); return function getDataAttributeValue(_x2, _x3) { return _ref2.apply(this, arguments); }; }(); /** Checks if given element is focused * @param {UniDriver} element * @returns {Promise<boolean>} */ exports.getDataAttributeValue = getDataAttributeValue; var isElementFocused = /*#__PURE__*/function () { var _ref3 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3(element) { var nativeElement, activeElement; return _regenerator["default"].wrap(function _callee3$(_context3) { while (1) { switch (_context3.prev = _context3.next) { case 0: _context3.next = 2; return element.getNative(); case 2: nativeElement = _context3.sent; _context3.t0 = element.type; _context3.next = _context3.t0 === 'react' ? 6 : _context3.t0 === 'puppeteer' ? 7 : _context3.t0 === 'protractor' ? 8 : 12; break; case 6: return _context3.abrupt("return", (0, _ReactBase.ReactBase)(element).isFocus()); case 7: return _context3.abrupt("return", page.evaluate(function (el) { return document.activeElement === el; }, nativeElement)); case 8: _context3.next = 10; return browser.driver.switchTo().activeElement(); case 10: activeElement = _context3.sent; return _context3.abrupt("return", nativeElement.equals(activeElement)); case 12: return _context3.abrupt("return"); case 13: case "end": return _context3.stop(); } } }, _callee3); })); return function isElementFocused(_x4) { return _ref3.apply(this, arguments); }; }(); exports.isElementFocused = isElementFocused; var baseUniDriverFactory = function baseUniDriverFactory(base) { var baseUniDriver = (0, _baseDriver.baseUniDriverFactory)(base); return { /** * Checks whether the component found with the given data hook * @returns {Promise<boolean>} */ exists: baseUniDriver.exists, /** * Gets the component root element * @returns {Promise<any>} */ element: baseUniDriver.element, /** * Clicks on the component root element * @returns {Promise<void>} */ click: baseUniDriver.click }; }; exports.baseUniDriverFactory = baseUniDriverFactory;