wix-style-react
Version:
227 lines (183 loc) • 6.17 kB
JavaScript
;
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;