domsuite
Advanced tools
Comparing version 0.4.1 to 0.5.0
@@ -1,30 +0,42 @@ | ||
'use strict'; | ||
"use strict"; | ||
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } | ||
Object.defineProperty(exports, "__esModule", { | ||
value: true | ||
}); | ||
exports.FetchServer = undefined; | ||
exports.FetchServer = void 0; | ||
var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }(); | ||
var _isFunction = _interopRequireDefault(require("lodash/isFunction")); | ||
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); | ||
var _isString = _interopRequireDefault(require("lodash/isString")); | ||
var _isFunction = require('lodash/isFunction'); | ||
var sinon = _interopRequireWildcard(require("sinon")); | ||
var _isFunction2 = _interopRequireDefault(_isFunction); | ||
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } | ||
var _isString = require('lodash/isString'); | ||
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; } | ||
var _isString2 = _interopRequireDefault(_isString); | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
var _sinon = require('sinon'); | ||
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; } | ||
var sinon = _interopRequireWildcard(_sinon); | ||
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } | ||
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } | ||
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } | ||
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } | ||
function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } | ||
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } | ||
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } | ||
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } | ||
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } | ||
/** | ||
@@ -45,4 +57,3 @@ * Utility class to stub fetch requests with sinon. Instantiate with a set of | ||
*/ | ||
var FetchServer = exports.FetchServer = function () { | ||
var FetchServer = /*#__PURE__*/function () { | ||
/** | ||
@@ -62,5 +73,5 @@ * Create a FetchServer instance. | ||
_ref$debug = _ref.debug, | ||
debug = _ref$debug === undefined ? false : _ref$debug, | ||
debug = _ref$debug === void 0 ? false : _ref$debug, | ||
_ref$errorCallback = _ref.errorCallback, | ||
errorCallback = _ref$errorCallback === undefined ? null : _ref$errorCallback; | ||
errorCallback = _ref$errorCallback === void 0 ? null : _ref$errorCallback; | ||
@@ -75,3 +86,3 @@ _classCallCheck(this, FetchServer); | ||
_createClass(FetchServer, [{ | ||
key: 'handle', | ||
key: "handle", | ||
value: function handle(url, params) { | ||
@@ -83,7 +94,7 @@ // Order routes by url length (descending). | ||
var routes = Object.entries(this.handlers).sort(function (_ref2, _ref3) { | ||
var _ref5 = _slicedToArray(_ref2, 1), | ||
aRoute = _ref5[0]; | ||
var _ref4 = _slicedToArray(_ref2, 1), | ||
aRoute = _ref4[0]; | ||
var _ref4 = _slicedToArray(_ref3, 1), | ||
bRoute = _ref4[0]; | ||
var _ref5 = _slicedToArray(_ref3, 1), | ||
bRoute = _ref5[0]; | ||
@@ -100,18 +111,14 @@ // If route lengths are the same, sort alphabetically; | ||
var _iteratorNormalCompletion = true; | ||
var _didIteratorError = false; | ||
var _iteratorError = undefined; | ||
var _iterator = _createForOfIteratorHelper(routes), | ||
_step; | ||
try { | ||
for (var _iterator = routes[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { | ||
var _ref6 = _step.value; | ||
for (_iterator.s(); !(_step = _iterator.n()).done;) { | ||
var _step$value = _slicedToArray(_step.value, 2), | ||
route = _step$value[0], | ||
handler = _step$value[1]; | ||
var _ref7 = _slicedToArray(_ref6, 2); | ||
var route = _ref7[0]; | ||
var handler = _ref7[1]; | ||
if (url.includes(route)) { | ||
if (params && params.body) { | ||
if ((0, _isString2.default)(params.body)) { | ||
if ((0, _isString.default)(params.body)) { | ||
// Allow string or JSON params.body; if valid JSON, | ||
@@ -125,9 +132,8 @@ // parse body to JS object before passing to handler function. | ||
} else { | ||
throw new Error('Invalid body: ' + params.body); | ||
throw new Error("Invalid body: ".concat(params.body)); | ||
} | ||
} | ||
var response = (0, _isFunction2.default)(handler) ? handler(url, params) : handler; | ||
var response = (0, _isFunction.default)(handler) ? handler(url, params) : handler; // Not yet promise-like | ||
// Not yet promise-like | ||
if (!response.then) { | ||
@@ -138,3 +144,3 @@ // serializable value, wrap in fetch-like Promise | ||
headers: { | ||
'Content-Type': 'application/json' | ||
'Content-Type': "application/json" | ||
} | ||
@@ -145,3 +151,7 @@ }; | ||
this.debugLog({ url: url, params: params, response: response }); | ||
this.debugLog({ | ||
url: url, | ||
params: params, | ||
response: response | ||
}); | ||
return response; | ||
@@ -151,19 +161,9 @@ } | ||
} catch (err) { | ||
_didIteratorError = true; | ||
_iteratorError = err; | ||
_iterator.e(err); | ||
} finally { | ||
try { | ||
if (!_iteratorNormalCompletion && _iterator.return) { | ||
_iterator.return(); | ||
} | ||
} finally { | ||
if (_didIteratorError) { | ||
throw _iteratorError; | ||
} | ||
} | ||
_iterator.f(); | ||
} | ||
throw new Error('Unexpected fetch: ' + url + ' params: ' + JSON.stringify(params)); | ||
throw new Error("Unexpected fetch: ".concat(url, " params: ").concat(JSON.stringify(params))); | ||
} | ||
/** | ||
@@ -174,3 +174,3 @@ * Start the FetchServer, sinon.stub'ing `fetch` with a fake version. | ||
}, { | ||
key: 'start', | ||
key: "start", | ||
value: function start() { | ||
@@ -185,3 +185,3 @@ var _this = this; | ||
// into FetchServer so that tests may be reliably failed on error: | ||
(0, _isFunction2.default)(_this.errorCallback) && _this.errorCallback(err); | ||
(0, _isFunction.default)(_this.errorCallback) && _this.errorCallback(err); | ||
throw err; // rethrow error | ||
@@ -192,13 +192,13 @@ } | ||
this.restore(); // clean up prior FetchServer stubs (if necessary) | ||
// stub fetch in browser environment: | ||
// stub fetch in browser environment: | ||
if (typeof window !== 'undefined' && window.fetch && !Object.hasOwnProperty.call(window.fetch, 'restore')) { | ||
sinon.stub(window, 'fetch').callsFake(fakeFetch); | ||
if (typeof window !== "undefined" && window.fetch && !Object.hasOwnProperty.call(window.fetch, "restore")) { | ||
sinon.stub(window, "fetch").callsFake(fakeFetch); | ||
} // stub fetch in NodeJS environment: | ||
if (typeof global !== "undefined" && global.fetch && !Object.hasOwnProperty.call(global.fetch, "restore")) { | ||
sinon.stub(global, "fetch").callsFake(fakeFetch); | ||
} | ||
// stub fetch in NodeJS environment: | ||
if (typeof global !== 'undefined' && global.fetch && !Object.hasOwnProperty.call(global.fetch, 'restore')) { | ||
sinon.stub(global, 'fetch').callsFake(fakeFetch); | ||
} | ||
} | ||
/** | ||
@@ -209,5 +209,4 @@ * Restore sinon.stub'ed `fetch` to its original state. | ||
}, { | ||
key: 'restore', | ||
key: "restore", | ||
value: | ||
/** | ||
@@ -217,11 +216,11 @@ * Restore sinon.stub'ed `fetch` to its original state. | ||
*/ | ||
value: function restore() { | ||
function restore() { | ||
FetchServer.restore(); | ||
} | ||
}, { | ||
key: 'debugLog', | ||
value: function debugLog(_ref8) { | ||
var url = _ref8.url, | ||
params = _ref8.params, | ||
response = _ref8.response; | ||
key: "debugLog", | ||
value: function debugLog(_ref6) { | ||
var url = _ref6.url, | ||
params = _ref6.params, | ||
response = _ref6.response; | ||
@@ -235,8 +234,8 @@ if (this.debug) { | ||
}); | ||
Promise.all([responseObjectPromise, responseBodyPromise]).then(function (_ref9) { | ||
var _ref10 = _slicedToArray(_ref9, 2), | ||
response = _ref10[0], | ||
responseBody = _ref10[1]; | ||
Promise.all([responseObjectPromise, responseBodyPromise]).then(function (_ref7) { | ||
var _ref8 = _slicedToArray(_ref7, 2), | ||
response = _ref8[0], | ||
responseBody = _ref8[1]; | ||
console.groupCollapsed('[fetch-server] ' + url); | ||
console.groupCollapsed("[fetch-server] ".concat(url)); | ||
console.groupCollapsed('Params'); | ||
@@ -256,10 +255,11 @@ console.log(JSON.stringify(params, null, 2)); | ||
}], [{ | ||
key: 'restore', | ||
key: "restore", | ||
value: function restore() { | ||
// restore fetch in browser environment: | ||
if (typeof window !== 'undefined' && window.fetch && Object.hasOwnProperty.call(window.fetch, 'restore')) { | ||
if (typeof window !== "undefined" && window.fetch && Object.hasOwnProperty.call(window.fetch, "restore")) { | ||
window.fetch.restore(); | ||
} | ||
// restore fetch in NodeJS environment: | ||
if (typeof global !== 'undefined' && global.fetch && Object.hasOwnProperty.call(global.fetch, 'restore')) { | ||
} // restore fetch in NodeJS environment: | ||
if (typeof global !== "undefined" && global.fetch && Object.hasOwnProperty.call(global.fetch, "restore")) { | ||
global.fetch.restore(); | ||
@@ -271,2 +271,4 @@ } | ||
return FetchServer; | ||
}(); | ||
}(); | ||
exports.FetchServer = FetchServer; |
@@ -1,2 +0,2 @@ | ||
'use strict'; | ||
"use strict"; | ||
@@ -6,8 +6,126 @@ Object.defineProperty(exports, "__esModule", { | ||
}); | ||
exports.BROWSERS = exports.sendInputToActiveElement = exports.sendInput = exports.changeInput = exports.clickElement = exports.mousedownElement = exports.mouseleaveElement = exports.mouseenterElement = exports.condition = exports.retryable = exports.sleepAfterAction = exports.sleep = exports.nextAnimationFrame = exports.FetchServer = undefined; | ||
exports.BROWSERS = void 0; | ||
Object.defineProperty(exports, "FetchServer", { | ||
enumerable: true, | ||
get: function get() { | ||
return _fetchServer.FetchServer; | ||
} | ||
}); | ||
exports.changeInput = changeInput; | ||
exports.clickElement = clickElement; | ||
exports.condition = condition; | ||
exports.getActiveElement = getActiveElement; | ||
exports.getDescendantTextParts = getDescendantTextParts; | ||
exports.isBrowser = isBrowser; | ||
exports.isVisibleElement = isVisibleElement; | ||
exports.mousedownElement = mousedownElement; | ||
exports.mouseenterElement = mouseenterElement; | ||
exports.mouseleaveElement = mouseleaveElement; | ||
exports.nextAnimationFrame = nextAnimationFrame; | ||
exports.queryShadowSelectors = queryShadowSelectors; | ||
exports.queryShadowSelectorsAll = queryShadowSelectorsAll; | ||
exports.retryable = retryable; | ||
exports.sendInput = sendInput; | ||
exports.sendInputToActiveElement = sendInputToActiveElement; | ||
exports.setDefaultWaitMsAfterAction = setDefaultWaitMsAfterAction; | ||
exports.sleep = sleep; | ||
exports.sleepAfterAction = sleepAfterAction; | ||
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; | ||
var _isEmpty = _interopRequireDefault(require("lodash/isEmpty")); | ||
var nextAnimationFrame = exports.nextAnimationFrame = function () { | ||
var _ref = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() { | ||
var _platform = _interopRequireDefault(require("platform")); | ||
var _fetchServer = require("./fetch-server"); | ||
var _excluded = ["waitMs"]; | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); 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 = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } | ||
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } | ||
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; } | ||
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; } | ||
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } | ||
function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } | ||
//region Non-async getters | ||
function queryShadowSelectorsAll(rootEl, selectors) { | ||
if (!rootEl) { | ||
return []; | ||
} | ||
var currEl = rootEl; | ||
var elements = []; | ||
selectors.some(function (selector, idx) { | ||
currEl = currEl.shadowRoot; | ||
if (!currEl) { | ||
return true; | ||
} | ||
if (idx !== selectors.length - 1) { | ||
currEl = currEl.querySelector(selector); | ||
} else { | ||
elements = Array.from(currEl.querySelectorAll(selector)); | ||
} | ||
}); | ||
return elements; | ||
} | ||
function queryShadowSelectors(rootEl, selectors) { | ||
var el = queryShadowSelectorsAll(rootEl, selectors); | ||
return !(0, _isEmpty.default)(el) ? el[0] : null; | ||
} | ||
function getActiveElement() { | ||
var activeEl = document.activeElement; | ||
while (activeEl && activeEl.shadowRoot) { | ||
activeEl = activeEl.shadowRoot.activeElement; | ||
} | ||
return activeEl; | ||
} | ||
function isVisibleElement(el) { | ||
// Based on http://stackoverflow.com/a/21696585 | ||
return !!(el && el.offsetParent); | ||
} // Based on https://stackoverflow.com/a/10730777 | ||
function getDescendantTextParts(el) { | ||
var textParts = []; | ||
var treeWalker = document.createTreeWalker(el, NodeFilter.SHOW_TEXT, null, false); | ||
var currNode = treeWalker.nextNode(); | ||
while (currNode) { | ||
textParts.push(currNode.textContent); | ||
currNode = treeWalker.nextNode(); | ||
} | ||
return textParts; | ||
} //endregion | ||
//region Async actions | ||
// How long to sleep after an action (e.g. click element, type input) | ||
var defaultWaitMsAfterAction = 50; | ||
function setDefaultWaitMsAfterAction(waitMs) { | ||
defaultWaitMsAfterAction = waitMs; | ||
} | ||
function nextAnimationFrame() { | ||
return _nextAnimationFrame.apply(this, arguments); | ||
} | ||
function _nextAnimationFrame() { | ||
_nextAnimationFrame = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() { | ||
return regeneratorRuntime.wrap(function _callee$(_context) { | ||
@@ -17,19 +135,20 @@ while (1) { | ||
case 0: | ||
return _context.abrupt('return', new Promise(requestAnimationFrame)); | ||
return _context.abrupt("return", new Promise(requestAnimationFrame)); | ||
case 1: | ||
case 'end': | ||
case "end": | ||
return _context.stop(); | ||
} | ||
} | ||
}, _callee, this); | ||
}, _callee); | ||
})); | ||
return _nextAnimationFrame.apply(this, arguments); | ||
} | ||
return function nextAnimationFrame() { | ||
return _ref.apply(this, arguments); | ||
}; | ||
}(); | ||
function sleep(_x) { | ||
return _sleep.apply(this, arguments); | ||
} | ||
var sleep = exports.sleep = function () { | ||
var _ref2 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2(durationMs) { | ||
function _sleep() { | ||
_sleep = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2(durationMs) { | ||
return regeneratorRuntime.wrap(function _callee2$(_context2) { | ||
@@ -39,3 +158,3 @@ while (1) { | ||
case 0: | ||
return _context2.abrupt('return', new Promise(function (resolve) { | ||
return _context2.abrupt("return", new Promise(function (resolve) { | ||
return setTimeout(resolve, durationMs); | ||
@@ -45,17 +164,19 @@ })); | ||
case 1: | ||
case 'end': | ||
case "end": | ||
return _context2.stop(); | ||
} | ||
} | ||
}, _callee2, this); | ||
}, _callee2); | ||
})); | ||
return _sleep.apply(this, arguments); | ||
} | ||
return function sleep(_x) { | ||
return _ref2.apply(this, arguments); | ||
}; | ||
}(); | ||
function sleepAfterAction() { | ||
return _sleepAfterAction.apply(this, arguments); | ||
} | ||
var sleepAfterAction = exports.sleepAfterAction = function () { | ||
var _ref3 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee3() { | ||
var waitMs = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultWaitMsAfterAction; | ||
function _sleepAfterAction() { | ||
_sleepAfterAction = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee3() { | ||
var waitMs, | ||
_args3 = arguments; | ||
return regeneratorRuntime.wrap(function _callee3$(_context3) { | ||
@@ -65,29 +186,35 @@ while (1) { | ||
case 0: | ||
_context3.next = 2; | ||
waitMs = _args3.length > 0 && _args3[0] !== undefined ? _args3[0] : defaultWaitMsAfterAction; | ||
_context3.next = 3; | ||
return nextAnimationFrame(); | ||
case 2: | ||
_context3.next = 4; | ||
case 3: | ||
_context3.next = 5; | ||
return sleep(waitMs); | ||
case 4: | ||
case 'end': | ||
case 5: | ||
case "end": | ||
return _context3.stop(); | ||
} | ||
} | ||
}, _callee3, this); | ||
}, _callee3); | ||
})); | ||
return _sleepAfterAction.apply(this, arguments); | ||
} | ||
return function sleepAfterAction() { | ||
return _ref3.apply(this, arguments); | ||
}; | ||
}(); | ||
function retryable(_x2) { | ||
return _retryable.apply(this, arguments); | ||
} | ||
var retryable = exports.retryable = function () { | ||
var _ref4 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee4(retryableFunc) { | ||
var _ref5 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, | ||
_ref5$maxWaitMs = _ref5.maxWaitMs, | ||
maxWaitMs = _ref5$maxWaitMs === undefined ? 1000 : _ref5$maxWaitMs; | ||
function _retryable() { | ||
_retryable = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee4(retryableFunc) { | ||
var _ref, | ||
_ref$maxWaitMs, | ||
maxWaitMs, | ||
startTimestamp, | ||
error, | ||
elapsedTime, | ||
errorMessage, | ||
_args4 = arguments; | ||
var startTimestamp, error, elapsedTime, errorMessage; | ||
return regeneratorRuntime.wrap(function _callee4$(_context4) { | ||
@@ -97,62 +224,67 @@ while (1) { | ||
case 0: | ||
_ref = _args4.length > 1 && _args4[1] !== undefined ? _args4[1] : {}, _ref$maxWaitMs = _ref.maxWaitMs, maxWaitMs = _ref$maxWaitMs === void 0 ? 1000 : _ref$maxWaitMs; | ||
startTimestamp = new Date().getTime(); | ||
case 1: | ||
case 2: | ||
error = null; | ||
_context4.prev = 2; | ||
_context4.next = 5; | ||
_context4.prev = 3; | ||
_context4.next = 6; | ||
return retryableFunc(); | ||
case 5: | ||
return _context4.abrupt('return', _context4.sent); | ||
case 6: | ||
return _context4.abrupt("return", _context4.sent); | ||
case 8: | ||
_context4.prev = 8; | ||
_context4.t0 = _context4['catch'](2); | ||
case 9: | ||
_context4.prev = 9; | ||
_context4.t0 = _context4["catch"](3); | ||
error = _context4.t0; | ||
case 11: | ||
case 12: | ||
elapsedTime = new Date().getTime() - startTimestamp; | ||
if (!(elapsedTime > maxWaitMs)) { | ||
_context4.next = 16; | ||
_context4.next = 17; | ||
break; | ||
} | ||
errorMessage = 'Retryable did not complete in allocated time:\n' + error.stack + '\n\n' + ('Failing function:\n' + retryableFunc.toString() + '\n'); | ||
errorMessage = "Retryable did not complete in allocated time:\n".concat(error.stack, "\n\n") + "Failing function:\n".concat(retryableFunc.toString(), "\n"); | ||
console.error(errorMessage); | ||
throw new Error(errorMessage); | ||
case 16: | ||
_context4.next = 18; | ||
case 17: | ||
_context4.next = 19; | ||
return sleep(25); | ||
case 18: | ||
case 19: | ||
if (true) { | ||
_context4.next = 1; | ||
_context4.next = 2; | ||
break; | ||
} | ||
case 19: | ||
case 'end': | ||
case 20: | ||
case "end": | ||
return _context4.stop(); | ||
} | ||
} | ||
}, _callee4, this, [[2, 8]]); | ||
}, _callee4, null, [[3, 9]]); | ||
})); | ||
return _retryable.apply(this, arguments); | ||
} | ||
return function retryable(_x4) { | ||
return _ref4.apply(this, arguments); | ||
}; | ||
}(); | ||
function condition(_x3) { | ||
return _condition.apply(this, arguments); | ||
} | ||
var condition = exports.condition = function () { | ||
var _ref6 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee5(predicate) { | ||
var _ref7 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, | ||
_ref7$maxWaitMs = _ref7.maxWaitMs, | ||
maxWaitMs = _ref7$maxWaitMs === undefined ? 1000 : _ref7$maxWaitMs; | ||
function _condition() { | ||
_condition = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee5(predicate) { | ||
var _ref2, | ||
_ref2$maxWaitMs, | ||
maxWaitMs, | ||
startTimestamp, | ||
error, | ||
val, | ||
elapsedTime, | ||
errorMessage, | ||
_args5 = arguments; | ||
var startTimestamp, error, val, elapsedTime, errorMessage; | ||
return regeneratorRuntime.wrap(function _callee5$(_context5) { | ||
@@ -162,7 +294,8 @@ while (1) { | ||
case 0: | ||
_ref2 = _args5.length > 1 && _args5[1] !== undefined ? _args5[1] : {}, _ref2$maxWaitMs = _ref2.maxWaitMs, maxWaitMs = _ref2$maxWaitMs === void 0 ? 1000 : _ref2$maxWaitMs; | ||
startTimestamp = new Date().getTime(); | ||
case 1: | ||
case 2: | ||
if (!true) { | ||
_context5.next = 23; | ||
_context5.next = 24; | ||
break; | ||
@@ -173,65 +306,65 @@ } | ||
error = null; | ||
_context5.prev = 3; | ||
_context5.next = 6; | ||
_context5.prev = 4; | ||
_context5.next = 7; | ||
return predicate(); | ||
case 6: | ||
case 7: | ||
val = _context5.sent; | ||
if (!val) { | ||
_context5.next = 9; | ||
_context5.next = 10; | ||
break; | ||
} | ||
return _context5.abrupt('return', val); | ||
return _context5.abrupt("return", val); | ||
case 9: | ||
_context5.next = 14; | ||
case 10: | ||
_context5.next = 15; | ||
break; | ||
case 11: | ||
_context5.prev = 11; | ||
_context5.t0 = _context5['catch'](3); | ||
case 12: | ||
_context5.prev = 12; | ||
_context5.t0 = _context5["catch"](4); | ||
error = _context5.t0; | ||
case 14: | ||
case 15: | ||
elapsedTime = new Date().getTime() - startTimestamp; | ||
if (!(elapsedTime > maxWaitMs)) { | ||
_context5.next = 19; | ||
_context5.next = 20; | ||
break; | ||
} | ||
errorMessage = 'Condition was not met in allocated time:\n' + (error && error.stack) + '\n\n' + ('Failing function:\n' + predicate.toString() + '\n'); | ||
errorMessage = "Condition was not met in allocated time:\n".concat(error && error.stack, "\n\n") + "Failing function:\n".concat(predicate.toString(), "\n"); | ||
console.error(errorMessage); | ||
throw new Error(errorMessage); | ||
case 19: | ||
_context5.next = 21; | ||
case 20: | ||
_context5.next = 22; | ||
return sleep(25); | ||
case 21: | ||
_context5.next = 1; | ||
case 22: | ||
_context5.next = 2; | ||
break; | ||
case 23: | ||
case 'end': | ||
case 24: | ||
case "end": | ||
return _context5.stop(); | ||
} | ||
} | ||
}, _callee5, this, [[3, 11]]); | ||
}, _callee5, null, [[4, 12]]); | ||
})); | ||
return _condition.apply(this, arguments); | ||
} | ||
return function condition(_x6) { | ||
return _ref6.apply(this, arguments); | ||
}; | ||
}(); | ||
function mouseenterElement(_x4) { | ||
return _mouseenterElement.apply(this, arguments); | ||
} | ||
var mouseenterElement = exports.mouseenterElement = function () { | ||
var _ref8 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee6(el) { | ||
var _ref9 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, | ||
_ref9$waitMs = _ref9.waitMs, | ||
waitMs = _ref9$waitMs === undefined ? defaultWaitMsAfterAction : _ref9$waitMs; | ||
function _mouseenterElement() { | ||
_mouseenterElement = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee6(el) { | ||
var _ref3, | ||
_ref3$waitMs, | ||
waitMs, | ||
_args6 = arguments; | ||
@@ -242,26 +375,29 @@ return regeneratorRuntime.wrap(function _callee6$(_context6) { | ||
case 0: | ||
el.dispatchEvent(new MouseEvent('mouseenter', { | ||
_ref3 = _args6.length > 1 && _args6[1] !== undefined ? _args6[1] : {}, _ref3$waitMs = _ref3.waitMs, waitMs = _ref3$waitMs === void 0 ? defaultWaitMsAfterAction : _ref3$waitMs; | ||
el.dispatchEvent(new MouseEvent("mouseenter", { | ||
composed: true | ||
})); | ||
_context6.next = 3; | ||
_context6.next = 4; | ||
return sleepAfterAction(waitMs); | ||
case 3: | ||
case 'end': | ||
case 4: | ||
case "end": | ||
return _context6.stop(); | ||
} | ||
} | ||
}, _callee6, this); | ||
}, _callee6); | ||
})); | ||
return _mouseenterElement.apply(this, arguments); | ||
} | ||
return function mouseenterElement(_x8) { | ||
return _ref8.apply(this, arguments); | ||
}; | ||
}(); | ||
function mouseleaveElement(_x5) { | ||
return _mouseleaveElement.apply(this, arguments); | ||
} | ||
var mouseleaveElement = exports.mouseleaveElement = function () { | ||
var _ref10 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee7(el) { | ||
var _ref11 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, | ||
_ref11$waitMs = _ref11.waitMs, | ||
waitMs = _ref11$waitMs === undefined ? defaultWaitMsAfterAction : _ref11$waitMs; | ||
function _mouseleaveElement() { | ||
_mouseleaveElement = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee7(el) { | ||
var _ref4, | ||
_ref4$waitMs, | ||
waitMs, | ||
_args7 = arguments; | ||
@@ -272,26 +408,29 @@ return regeneratorRuntime.wrap(function _callee7$(_context7) { | ||
case 0: | ||
el.dispatchEvent(new MouseEvent('mouseleave', { | ||
_ref4 = _args7.length > 1 && _args7[1] !== undefined ? _args7[1] : {}, _ref4$waitMs = _ref4.waitMs, waitMs = _ref4$waitMs === void 0 ? defaultWaitMsAfterAction : _ref4$waitMs; | ||
el.dispatchEvent(new MouseEvent("mouseleave", { | ||
composed: true | ||
})); | ||
_context7.next = 3; | ||
_context7.next = 4; | ||
return sleepAfterAction(waitMs); | ||
case 3: | ||
case 'end': | ||
case 4: | ||
case "end": | ||
return _context7.stop(); | ||
} | ||
} | ||
}, _callee7, this); | ||
}, _callee7); | ||
})); | ||
return _mouseleaveElement.apply(this, arguments); | ||
} | ||
return function mouseleaveElement(_x10) { | ||
return _ref10.apply(this, arguments); | ||
}; | ||
}(); | ||
function mousedownElement(_x6) { | ||
return _mousedownElement.apply(this, arguments); | ||
} | ||
var mousedownElement = exports.mousedownElement = function () { | ||
var _ref12 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee8(el) { | ||
var _ref13 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, | ||
_ref13$waitMs = _ref13.waitMs, | ||
waitMs = _ref13$waitMs === undefined ? defaultWaitMsAfterAction : _ref13$waitMs; | ||
function _mousedownElement() { | ||
_mousedownElement = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee8(el) { | ||
var _ref5, | ||
_ref5$waitMs, | ||
waitMs, | ||
_args8 = arguments; | ||
@@ -302,30 +441,32 @@ return regeneratorRuntime.wrap(function _callee8$(_context8) { | ||
case 0: | ||
el.dispatchEvent(new MouseEvent('mousedown', { | ||
_ref5 = _args8.length > 1 && _args8[1] !== undefined ? _args8[1] : {}, _ref5$waitMs = _ref5.waitMs, waitMs = _ref5$waitMs === void 0 ? defaultWaitMsAfterAction : _ref5$waitMs; | ||
el.dispatchEvent(new MouseEvent("mousedown", { | ||
bubbles: true, | ||
composed: true | ||
})); | ||
_context8.next = 3; | ||
_context8.next = 4; | ||
return sleepAfterAction(waitMs); | ||
case 3: | ||
case 'end': | ||
case 4: | ||
case "end": | ||
return _context8.stop(); | ||
} | ||
} | ||
}, _callee8, this); | ||
}, _callee8); | ||
})); | ||
return _mousedownElement.apply(this, arguments); | ||
} | ||
return function mousedownElement(_x12) { | ||
return _ref12.apply(this, arguments); | ||
}; | ||
}(); | ||
function clickElement(_x7) { | ||
return _clickElement.apply(this, arguments); | ||
} | ||
var clickElement = exports.clickElement = function () { | ||
var _ref15 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee9(el) { | ||
var _ref14 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; | ||
function _clickElement() { | ||
_clickElement = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee9(el) { | ||
var _ref6, | ||
_ref6$waitMs, | ||
waitMs, | ||
mouseEventAttrs, | ||
_args9 = arguments; | ||
var _ref14$waitMs = _ref14.waitMs, | ||
waitMs = _ref14$waitMs === undefined ? defaultWaitMsAfterAction : _ref14$waitMs, | ||
mouseEventAttrs = _objectWithoutProperties(_ref14, ['waitMs']); | ||
return regeneratorRuntime.wrap(function _callee9$(_context9) { | ||
@@ -335,24 +476,29 @@ while (1) { | ||
case 0: | ||
el.dispatchEvent(new MouseEvent('click', _extends({ bubbles: true }, mouseEventAttrs))); | ||
_context9.next = 3; | ||
_ref6 = _args9.length > 1 && _args9[1] !== undefined ? _args9[1] : {}, _ref6$waitMs = _ref6.waitMs, waitMs = _ref6$waitMs === void 0 ? defaultWaitMsAfterAction : _ref6$waitMs, mouseEventAttrs = _objectWithoutProperties(_ref6, _excluded); | ||
el.dispatchEvent(new MouseEvent("click", _objectSpread({ | ||
bubbles: true | ||
}, mouseEventAttrs))); | ||
_context9.next = 4; | ||
return sleepAfterAction(waitMs); | ||
case 3: | ||
case 'end': | ||
case 4: | ||
case "end": | ||
return _context9.stop(); | ||
} | ||
} | ||
}, _callee9, this); | ||
}, _callee9); | ||
})); | ||
return _clickElement.apply(this, arguments); | ||
} | ||
return function clickElement(_x14) { | ||
return _ref15.apply(this, arguments); | ||
}; | ||
}(); | ||
function changeInput(_x8, _x9) { | ||
return _changeInput.apply(this, arguments); | ||
} | ||
var changeInput = exports.changeInput = function () { | ||
var _ref16 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee10(inputEl, value) { | ||
var _ref17 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}, | ||
_ref17$waitMs = _ref17.waitMs, | ||
waitMs = _ref17$waitMs === undefined ? defaultWaitMsAfterAction : _ref17$waitMs; | ||
function _changeInput() { | ||
_changeInput = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee10(inputEl, value) { | ||
var _ref7, | ||
_ref7$waitMs, | ||
waitMs, | ||
_args10 = arguments; | ||
@@ -363,28 +509,31 @@ return regeneratorRuntime.wrap(function _callee10$(_context10) { | ||
case 0: | ||
_ref7 = _args10.length > 2 && _args10[2] !== undefined ? _args10[2] : {}, _ref7$waitMs = _ref7.waitMs, waitMs = _ref7$waitMs === void 0 ? defaultWaitMsAfterAction : _ref7$waitMs; | ||
inputEl.value = value; | ||
inputEl.dispatchEvent(new Event('change', { | ||
inputEl.dispatchEvent(new Event("change", { | ||
bubbles: true, | ||
composed: true | ||
})); | ||
_context10.next = 4; | ||
_context10.next = 5; | ||
return sleepAfterAction(waitMs); | ||
case 4: | ||
case 'end': | ||
case 5: | ||
case "end": | ||
return _context10.stop(); | ||
} | ||
} | ||
}, _callee10, this); | ||
}, _callee10); | ||
})); | ||
return _changeInput.apply(this, arguments); | ||
} | ||
return function changeInput(_x16, _x17) { | ||
return _ref16.apply(this, arguments); | ||
}; | ||
}(); | ||
function sendInput(_x10, _x11) { | ||
return _sendInput.apply(this, arguments); | ||
} | ||
var sendInput = exports.sendInput = function () { | ||
var _ref18 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee11(inputEl, value) { | ||
var _ref19 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}, | ||
_ref19$waitMs = _ref19.waitMs, | ||
waitMs = _ref19$waitMs === undefined ? defaultWaitMsAfterAction : _ref19$waitMs; | ||
function _sendInput() { | ||
_sendInput = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee11(inputEl, value) { | ||
var _ref8, | ||
_ref8$waitMs, | ||
waitMs, | ||
_args11 = arguments; | ||
@@ -395,4 +544,5 @@ return regeneratorRuntime.wrap(function _callee11$(_context11) { | ||
case 0: | ||
_ref8 = _args11.length > 2 && _args11[2] !== undefined ? _args11[2] : {}, _ref8$waitMs = _ref8.waitMs, waitMs = _ref8$waitMs === void 0 ? defaultWaitMsAfterAction : _ref8$waitMs; | ||
inputEl.value = value; | ||
inputEl.dispatchEvent(new Event('input', { | ||
inputEl.dispatchEvent(new Event("input", { | ||
bubbles: true, | ||
@@ -402,24 +552,27 @@ // composed: true is needed to mimic real 'input' event which will cross shadow-dom boundary | ||
})); | ||
_context11.next = 4; | ||
_context11.next = 5; | ||
return sleepAfterAction(waitMs); | ||
case 4: | ||
case 'end': | ||
case 5: | ||
case "end": | ||
return _context11.stop(); | ||
} | ||
} | ||
}, _callee11, this); | ||
}, _callee11); | ||
})); | ||
return _sendInput.apply(this, arguments); | ||
} | ||
return function sendInput(_x19, _x20) { | ||
return _ref18.apply(this, arguments); | ||
}; | ||
}(); | ||
function sendInputToActiveElement(_x12) { | ||
return _sendInputToActiveElement.apply(this, arguments); | ||
} // Browser names defined here: https://github.com/lancedikson/bowser/blob/master/test/acceptance/useragentstrings.yml | ||
var sendInputToActiveElement = exports.sendInputToActiveElement = function () { | ||
var _ref20 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee12(value) { | ||
var _ref21 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, | ||
_ref21$waitMs = _ref21.waitMs, | ||
waitMs = _ref21$waitMs === undefined ? defaultWaitMsAfterAction : _ref21$waitMs; | ||
function _sendInputToActiveElement() { | ||
_sendInputToActiveElement = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee12(value) { | ||
var _ref9, | ||
_ref9$waitMs, | ||
waitMs, | ||
_args12 = arguments; | ||
return regeneratorRuntime.wrap(function _callee12$(_context12) { | ||
@@ -429,127 +582,28 @@ while (1) { | ||
case 0: | ||
_context12.next = 2; | ||
return sendInput(getActiveElement(), value, { waitMs: waitMs }); | ||
_ref9 = _args12.length > 1 && _args12[1] !== undefined ? _args12[1] : {}, _ref9$waitMs = _ref9.waitMs, waitMs = _ref9$waitMs === void 0 ? defaultWaitMsAfterAction : _ref9$waitMs; | ||
_context12.next = 3; | ||
return sendInput(getActiveElement(), value, { | ||
waitMs: waitMs | ||
}); | ||
case 2: | ||
case 'end': | ||
case 3: | ||
case "end": | ||
return _context12.stop(); | ||
} | ||
} | ||
}, _callee12, this); | ||
}, _callee12); | ||
})); | ||
return function sendInputToActiveElement(_x22) { | ||
return _ref20.apply(this, arguments); | ||
}; | ||
}(); | ||
// Browser names defined here: https://github.com/lancedikson/bowser/blob/master/test/acceptance/useragentstrings.yml | ||
var _fetchServer = require('./fetch-server'); | ||
Object.defineProperty(exports, 'FetchServer', { | ||
enumerable: true, | ||
get: function get() { | ||
return _fetchServer.FetchServer; | ||
} | ||
}); | ||
exports.queryShadowSelectorsAll = queryShadowSelectorsAll; | ||
exports.queryShadowSelectors = queryShadowSelectors; | ||
exports.getActiveElement = getActiveElement; | ||
exports.isVisibleElement = isVisibleElement; | ||
exports.getDescendantTextParts = getDescendantTextParts; | ||
exports.setDefaultWaitMsAfterAction = setDefaultWaitMsAfterAction; | ||
exports.isBrowser = isBrowser; | ||
var _isEmpty = require('lodash/isEmpty'); | ||
var _isEmpty2 = _interopRequireDefault(_isEmpty); | ||
var _platform = require('platform'); | ||
var _platform2 = _interopRequireDefault(_platform); | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } | ||
function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step("next", value); }, function (err) { step("throw", err); }); } } return step("next"); }); }; } | ||
//region Non-async getters | ||
function queryShadowSelectorsAll(rootEl, selectors) { | ||
if (!rootEl) { | ||
return []; | ||
} | ||
var currEl = rootEl; | ||
var elements = []; | ||
selectors.some(function (selector, idx) { | ||
currEl = currEl.shadowRoot; | ||
if (!currEl) { | ||
return true; | ||
} | ||
if (idx !== selectors.length - 1) { | ||
currEl = currEl.querySelector(selector); | ||
} else { | ||
elements = Array.from(currEl.querySelectorAll(selector)); | ||
} | ||
}); | ||
return elements; | ||
return _sendInputToActiveElement.apply(this, arguments); | ||
} | ||
function queryShadowSelectors(rootEl, selectors) { | ||
var el = queryShadowSelectorsAll(rootEl, selectors); | ||
return !(0, _isEmpty2.default)(el) ? el[0] : null; | ||
} | ||
function getActiveElement() { | ||
var activeEl = document.activeElement; | ||
while (activeEl && activeEl.shadowRoot) { | ||
activeEl = activeEl.shadowRoot.activeElement; | ||
} | ||
return activeEl; | ||
} | ||
function isVisibleElement(el) { | ||
// Based on http://stackoverflow.com/a/21696585 | ||
return !!(el && el.offsetParent); | ||
} | ||
// Based on https://stackoverflow.com/a/10730777 | ||
function getDescendantTextParts(el) { | ||
var textParts = []; | ||
var treeWalker = document.createTreeWalker(el, NodeFilter.SHOW_TEXT, null, false); | ||
var currNode = treeWalker.nextNode(); | ||
while (currNode) { | ||
textParts.push(currNode.textContent); | ||
currNode = treeWalker.nextNode(); | ||
} | ||
return textParts; | ||
} | ||
//endregion | ||
//region Async actions | ||
// How long to sleep after an action (e.g. click element, type input) | ||
var defaultWaitMsAfterAction = 50; | ||
function setDefaultWaitMsAfterAction(waitMs) { | ||
defaultWaitMsAfterAction = waitMs; | ||
} | ||
var BROWSERS = exports.BROWSERS = { | ||
CHROME: 'Chrome', | ||
FIREFOX: 'Firefox', | ||
SAFARI: 'Safari', | ||
EDGE: 'Microsoft Edge' | ||
var BROWSERS = { | ||
CHROME: "Chrome", | ||
FIREFOX: "Firefox", | ||
SAFARI: "Safari", | ||
EDGE: "Microsoft Edge" | ||
}; | ||
exports.BROWSERS = BROWSERS; | ||
function isBrowser(browserName) { | ||
return _platform2.default.name === browserName; | ||
} | ||
//endregion | ||
return _platform.default.name === browserName; | ||
} //endregion |
{ | ||
"name": "domsuite", | ||
"version": "0.4.1", | ||
"version": "0.5.0", | ||
"description": "Browser testing/automation utilities with async/await", | ||
"main": "lib/index.js", | ||
"main": "compiled/index.js", | ||
"files": [ | ||
@@ -35,3 +35,4 @@ "compiled", | ||
"dependencies": { | ||
"lodash": "4.17.10", | ||
"core-js": "3.21.1", | ||
"lodash": "4.17.21", | ||
"platform": "1.3.5", | ||
@@ -41,12 +42,11 @@ "sinon": "6.1.5" | ||
"devDependencies": { | ||
"@babel/core": "7.1.2", | ||
"babel-cli": "6.26.0", | ||
"@babel/cli": "7.17.6", | ||
"@babel/preset-env": "7.16.11", | ||
"@babel/core": "7.17.8", | ||
"wct-browser-legacy": "1.0.1", | ||
"babel-loader": "8.0.4", | ||
"babel-plugin-transform-object-rest-spread": "6.26.0", | ||
"babel-preset-env": "1.7.0", | ||
"wct-browser-legacy": "1.0.1", | ||
"web-component-tester": "6.8.0", | ||
"webpack": "4.20.2", | ||
"webpack-cli": "3.1.2" | ||
"webpack-cli": "3.1.2", | ||
"web-component-tester": "6.8.0" | ||
} | ||
} |
# domsuite | ||
[![Build Status](https://travis-ci.com/mixpanel/domsuite.svg?branch=master)](https://travis-ci.com/mixpanel/domsuite) | ||
![Build Status](https://github.com/mixpanel/domsuite/actions/workflows/tests.yml/badge.svg) | ||
@@ -5,0 +5,0 @@ *Work In Progress* |
46301
8
1048
4
+ Addedcore-js@3.21.1
+ Addedcore-js@3.21.1(transitive)
- Removedlodash@4.17.10(transitive)
Updatedlodash@4.17.21