@testplane/webdriverio
Version:
Next-gen browser and mobile automation test framework for Node.js
47 lines (46 loc) • 6.28 kB
JavaScript
// src/scripts/resq.ts
var waitToLoadReact = function waitToLoadReact2() {
window.resq.waitToLoadReact();
};
var react$ = function react$2(selector, props, state, reactElement) {
props = props || {};
state = state || {};
let element = window.resq.resq$(selector, reactElement);
if (Object.keys(props).length) {
element = element.byProps(props);
}
if (Object.keys(state).length) {
element = element.byState(state);
}
if (!element.name) {
return { message: `React element with selector "${selector}" wasn't found` };
}
return element.isFragment && element.node ? element.node[0] : element.node;
};
var react$$ = function react$$2(selector, props, state, reactElement) {
let elements = window.resq.resq$$(selector, reactElement);
if (Object.keys(props).length) {
elements = elements.byProps(props);
}
if (Object.keys(state).length) {
elements = elements.byState(state);
}
if (!elements.length) {
return [];
}
let nodes = [];
elements.forEach(function(element) {
if (element.isFragment) {
nodes = nodes.concat(element.node || []);
} else if (element.node) {
nodes.push(element.node);
}
});
return [...nodes];
};
export {
react$,
react$$,
waitToLoadReact
};
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL3NjcmlwdHMvcmVzcS50cyJdLAogICJzb3VyY2VSb290IjogIi9Vc2Vycy9rcm9tYW41MTIvZ2VtaW5pLXRlc3Rpbmcvd2ViZHJpdmVyaW8vcGFja2FnZXMvd2ViZHJpdmVyaW8iLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuaW1wb3J0IHR5cGUgcmVzcSBmcm9tICdyZXNxJ1xuXG5pbnRlcmZhY2UgQ3VzdG9tV2luZG93IGV4dGVuZHMgV2luZG93IHtcbiAgICByZXNxOiB0eXBlb2YgcmVzcVxufVxuXG5kZWNsYXJlIGxldCB3aW5kb3c6IEN1c3RvbVdpbmRvd1xuXG5leHBvcnQgY29uc3Qgd2FpdFRvTG9hZFJlYWN0ID0gZnVuY3Rpb24gd2FpdFRvTG9hZFJlYWN0ICgpIHtcbiAgICB3aW5kb3cucmVzcS53YWl0VG9Mb2FkUmVhY3QoKVxufVxuXG5leHBvcnQgY29uc3QgcmVhY3QkID0gZnVuY3Rpb24gcmVhY3QkIChcbiAgICBzZWxlY3Rvcjogc3RyaW5nLFxuICAgIHByb3BzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbiAgICBzdGF0ZTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4gICAgcmVhY3RFbGVtZW50PzogSFRNTEVsZW1lbnRcbikge1xuICAgIHByb3BzID0gcHJvcHMgfHwge31cbiAgICBzdGF0ZSA9IHN0YXRlIHx8IHt9XG5cbiAgICBsZXQgZWxlbWVudCA9IHdpbmRvdy5yZXNxLnJlc3EkKHNlbGVjdG9yLCByZWFjdEVsZW1lbnQpXG5cbiAgICBpZiAoT2JqZWN0LmtleXMocHJvcHMpLmxlbmd0aCkge1xuICAgICAgICAvLyBub3QgeWV0IHR5cGVkIGh0dHBzOi8vZ2l0aHViLmNvbS9iYXJ1Y2h2bHovcmVzcS9pc3N1ZXMvNjlcbiAgICAgICAgZWxlbWVudCA9IChlbGVtZW50IGFzIGFueSkuYnlQcm9wcyhwcm9wcylcbiAgICB9XG5cbiAgICBpZiAoT2JqZWN0LmtleXMoc3RhdGUpLmxlbmd0aCkge1xuICAgICAgICAvLyBub3QgeWV0IHR5cGVkIGh0dHBzOi8vZ2l0aHViLmNvbS9iYXJ1Y2h2bHovcmVzcS9pc3N1ZXMvNjlcbiAgICAgICAgZWxlbWVudCA9IChlbGVtZW50IGFzIGFueSkuYnlTdGF0ZShzdGF0ZSlcbiAgICB9XG5cbiAgICBpZiAoIWVsZW1lbnQubmFtZSkge1xuICAgICAgICByZXR1cm4geyBtZXNzYWdlOiBgUmVhY3QgZWxlbWVudCB3aXRoIHNlbGVjdG9yIFwiJHtzZWxlY3Rvcn1cIiB3YXNuJ3QgZm91bmRgIH1cbiAgICB9XG5cbiAgICAvLyByZXNxIHJldHVybnMgYW4gYXJyYXkgb2YgSFRNTEVsZW1lbnRzIGlmIHRoZSBSZWFjdCBjb21wb25lbnQgaXMgYSBmcmFnbWVudFxuICAgIC8vIGlmIHRoZSBlbGVtZW50IGlzIGEgZnJhZ21lbnQsIHdlIHJldHVybiB0aGUgZmlyc3QgY2hpbGQgdG8gYmUgcGFzc2VkIGludG8gdGhlIGRyaXZlclxuICAgIHJldHVybiBlbGVtZW50LmlzRnJhZ21lbnQgJiYgZWxlbWVudC5ub2RlXG4gICAgICAgID8gKGVsZW1lbnQubm9kZSBhcyB1bmtub3duIGFzIEhUTUxFbGVtZW50W10pWzBdXG4gICAgICAgIDogZWxlbWVudC5ub2RlXG59XG5cbmV4cG9ydCBjb25zdCByZWFjdCQkID0gZnVuY3Rpb24gcmVhY3QkJCAoXG4gICAgc2VsZWN0b3I6IHN0cmluZyxcbiAgICBwcm9wczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4gICAgc3RhdGU6IFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuICAgIHJlYWN0RWxlbWVudD86IEhUTUxFbGVtZW50XG4pIHtcbiAgICBsZXQgZWxlbWVudHMgPSB3aW5kb3cucmVzcS5yZXNxJCQoc2VsZWN0b3IsIHJlYWN0RWxlbWVudClcblxuICAgIGlmIChPYmplY3Qua2V5cyhwcm9wcykubGVuZ3RoKSB7XG4gICAgICAgIC8vIG5vdCB5ZXQgdHlwZWQgaHR0cHM6Ly9naXRodWIuY29tL2JhcnVjaHZsei9yZXNxL2lzc3Vlcy82OVxuICAgICAgICBlbGVtZW50cyA9IChlbGVtZW50cyBhcyBhbnkpLmJ5UHJvcHMocHJvcHMpXG4gICAgfVxuXG4gICAgaWYgKE9iamVjdC5rZXlzKHN0YXRlKS5sZW5ndGgpIHtcbiAgICAgICAgLy8gbm90IHlldCB0eXBlZCBodHRwczovL2dpdGh1Yi5jb20vYmFydWNodmx6L3Jlc3EvaXNzdWVzLzY5XG4gICAgICAgIGVsZW1lbnRzID0gKGVsZW1lbnRzIGFzIGFueSkuYnlTdGF0ZShzdGF0ZSlcbiAgICB9XG5cbiAgICBpZiAoIWVsZW1lbnRzLmxlbmd0aCkge1xuICAgICAgICByZXR1cm4gW11cbiAgICB9XG5cbiAgICAvLyByZXNxIHJldHVybnMgYW4gYXJyYXkgb2YgSFRNTEVsZW1lbnRzIGlmIHRoZSBSZWFjdCBjb21wb25lbnQgaXMgYSBmcmFnbWVudFxuICAgIC8vIHRoaXMgYXZvaWRzIGhhdmluZyBuZXN0ZWQgYXJyYXlzIG9mIG5vZGVzIHdoaWNoIHRoZSBkcml2ZXIgZG9lcyBub3QgdW5kZXJzdGFuZFxuICAgIC8vIFtbZGl2LCBkaXZdLCBbZGl2LCBkaXZdXSA9PiBbZGl2LCBkaXYsIGRpdiwgZGl2XVxuICAgIGxldCBub2RlczogSFRNTEVsZW1lbnRbXSA9IFtdXG5cbiAgICBlbGVtZW50cy5mb3JFYWNoKGZ1bmN0aW9uIChlbGVtZW50KSB7XG4gICAgICAgIGlmIChlbGVtZW50LmlzRnJhZ21lbnQpIHtcbiAgICAgICAgICAgIG5vZGVzID0gbm9kZXMuY29uY2F0KGVsZW1lbnQubm9kZSB8fCBbXSlcbiAgICAgICAgfSBlbHNlIGlmIChlbGVtZW50Lm5vZGUpIHtcbiAgICAgICAgICAgIG5vZGVzLnB1c2goZWxlbWVudC5ub2RlKVxuICAgICAgICB9XG4gICAgfSlcblxuICAgIHJldHVybiBbLi4ubm9kZXNdXG59XG4iXSwKICAibWFwcGluZ3MiOiAiO0FBU08sSUFBTSxrQkFBa0IsU0FBU0EsbUJBQW1CO0FBQ3ZELFNBQU8sS0FBSyxnQkFBZ0I7QUFDaEM7QUFFTyxJQUFNLFNBQVMsU0FBU0MsUUFDM0IsVUFDQSxPQUNBLE9BQ0EsY0FDRjtBQUNFLFVBQVEsU0FBUyxDQUFDO0FBQ2xCLFVBQVEsU0FBUyxDQUFDO0FBRWxCLE1BQUksVUFBVSxPQUFPLEtBQUssTUFBTSxVQUFVLFlBQVk7QUFFdEQsTUFBSSxPQUFPLEtBQUssS0FBSyxFQUFFLFFBQVE7QUFFM0IsY0FBVyxRQUFnQixRQUFRLEtBQUs7QUFBQSxFQUM1QztBQUVBLE1BQUksT0FBTyxLQUFLLEtBQUssRUFBRSxRQUFRO0FBRTNCLGNBQVcsUUFBZ0IsUUFBUSxLQUFLO0FBQUEsRUFDNUM7QUFFQSxNQUFJLENBQUMsUUFBUSxNQUFNO0FBQ2YsV0FBTyxFQUFFLFNBQVMsZ0NBQWdDLFFBQVEsaUJBQWlCO0FBQUEsRUFDL0U7QUFJQSxTQUFPLFFBQVEsY0FBYyxRQUFRLE9BQzlCLFFBQVEsS0FBa0MsQ0FBQyxJQUM1QyxRQUFRO0FBQ2xCO0FBRU8sSUFBTSxVQUFVLFNBQVNDLFNBQzVCLFVBQ0EsT0FDQSxPQUNBLGNBQ0Y7QUFDRSxNQUFJLFdBQVcsT0FBTyxLQUFLLE9BQU8sVUFBVSxZQUFZO0FBRXhELE1BQUksT0FBTyxLQUFLLEtBQUssRUFBRSxRQUFRO0FBRTNCLGVBQVksU0FBaUIsUUFBUSxLQUFLO0FBQUEsRUFDOUM7QUFFQSxNQUFJLE9BQU8sS0FBSyxLQUFLLEVBQUUsUUFBUTtBQUUzQixlQUFZLFNBQWlCLFFBQVEsS0FBSztBQUFBLEVBQzlDO0FBRUEsTUFBSSxDQUFDLFNBQVMsUUFBUTtBQUNsQixXQUFPLENBQUM7QUFBQSxFQUNaO0FBS0EsTUFBSSxRQUF1QixDQUFDO0FBRTVCLFdBQVMsUUFBUSxTQUFVLFNBQVM7QUFDaEMsUUFBSSxRQUFRLFlBQVk7QUFDcEIsY0FBUSxNQUFNLE9BQU8sUUFBUSxRQUFRLENBQUMsQ0FBQztBQUFBLElBQzNDLFdBQVcsUUFBUSxNQUFNO0FBQ3JCLFlBQU0sS0FBSyxRQUFRLElBQUk7QUFBQSxJQUMzQjtBQUFBLEVBQ0osQ0FBQztBQUVELFNBQU8sQ0FBQyxHQUFHLEtBQUs7QUFDcEI7IiwKICAibmFtZXMiOiBbIndhaXRUb0xvYWRSZWFjdCIsICJyZWFjdCQiLCAicmVhY3QkJCJdCn0K