@testplane/webdriverio
Version:
Next-gen browser and mobile automation test framework for Node.js
47 lines (46 loc) • 6.3 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,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL3NjcmlwdHMvcmVzcS50cyJdLAogICJzb3VyY2VSb290IjogIi9Vc2Vycy9kdWRrZXZpY2gvam9iL3Byb2plY3RzL2dlbWluaS10ZXN0aW5nL3dlYmRyaXZlcmlvL3BhY2thZ2VzL3dlYmRyaXZlcmlvIiwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cbmltcG9ydCB0eXBlIHJlc3EgZnJvbSAncmVzcSdcblxuaW50ZXJmYWNlIEN1c3RvbVdpbmRvdyBleHRlbmRzIFdpbmRvdyB7XG4gICAgcmVzcTogdHlwZW9mIHJlc3Fcbn1cblxuZGVjbGFyZSBsZXQgd2luZG93OiBDdXN0b21XaW5kb3dcblxuZXhwb3J0IGNvbnN0IHdhaXRUb0xvYWRSZWFjdCA9IGZ1bmN0aW9uIHdhaXRUb0xvYWRSZWFjdCAoKSB7XG4gICAgd2luZG93LnJlc3Eud2FpdFRvTG9hZFJlYWN0KClcbn1cblxuZXhwb3J0IGNvbnN0IHJlYWN0JCA9IGZ1bmN0aW9uIHJlYWN0JCAoXG4gICAgc2VsZWN0b3I6IHN0cmluZyxcbiAgICBwcm9wczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4gICAgc3RhdGU6IFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuICAgIHJlYWN0RWxlbWVudD86IEhUTUxFbGVtZW50XG4pIHtcbiAgICBwcm9wcyA9IHByb3BzIHx8IHt9XG4gICAgc3RhdGUgPSBzdGF0ZSB8fCB7fVxuXG4gICAgbGV0IGVsZW1lbnQgPSB3aW5kb3cucmVzcS5yZXNxJChzZWxlY3RvciwgcmVhY3RFbGVtZW50KVxuXG4gICAgaWYgKE9iamVjdC5rZXlzKHByb3BzKS5sZW5ndGgpIHtcbiAgICAgICAgLy8gbm90IHlldCB0eXBlZCBodHRwczovL2dpdGh1Yi5jb20vYmFydWNodmx6L3Jlc3EvaXNzdWVzLzY5XG4gICAgICAgIGVsZW1lbnQgPSAoZWxlbWVudCBhcyBhbnkpLmJ5UHJvcHMocHJvcHMpXG4gICAgfVxuXG4gICAgaWYgKE9iamVjdC5rZXlzKHN0YXRlKS5sZW5ndGgpIHtcbiAgICAgICAgLy8gbm90IHlldCB0eXBlZCBodHRwczovL2dpdGh1Yi5jb20vYmFydWNodmx6L3Jlc3EvaXNzdWVzLzY5XG4gICAgICAgIGVsZW1lbnQgPSAoZWxlbWVudCBhcyBhbnkpLmJ5U3RhdGUoc3RhdGUpXG4gICAgfVxuXG4gICAgaWYgKCFlbGVtZW50Lm5hbWUpIHtcbiAgICAgICAgcmV0dXJuIHsgbWVzc2FnZTogYFJlYWN0IGVsZW1lbnQgd2l0aCBzZWxlY3RvciBcIiR7c2VsZWN0b3J9XCIgd2Fzbid0IGZvdW5kYCB9XG4gICAgfVxuXG4gICAgLy8gcmVzcSByZXR1cm5zIGFuIGFycmF5IG9mIEhUTUxFbGVtZW50cyBpZiB0aGUgUmVhY3QgY29tcG9uZW50IGlzIGEgZnJhZ21lbnRcbiAgICAvLyBpZiB0aGUgZWxlbWVudCBpcyBhIGZyYWdtZW50LCB3ZSByZXR1cm4gdGhlIGZpcnN0IGNoaWxkIHRvIGJlIHBhc3NlZCBpbnRvIHRoZSBkcml2ZXJcbiAgICByZXR1cm4gZWxlbWVudC5pc0ZyYWdtZW50ICYmIGVsZW1lbnQubm9kZVxuICAgICAgICA/IChlbGVtZW50Lm5vZGUgYXMgdW5rbm93biBhcyBIVE1MRWxlbWVudFtdKVswXVxuICAgICAgICA6IGVsZW1lbnQubm9kZVxufVxuXG5leHBvcnQgY29uc3QgcmVhY3QkJCA9IGZ1bmN0aW9uIHJlYWN0JCQgKFxuICAgIHNlbGVjdG9yOiBzdHJpbmcsXG4gICAgcHJvcHM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuICAgIHN0YXRlOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbiAgICByZWFjdEVsZW1lbnQ/OiBIVE1MRWxlbWVudFxuKSB7XG4gICAgbGV0IGVsZW1lbnRzID0gd2luZG93LnJlc3EucmVzcSQkKHNlbGVjdG9yLCByZWFjdEVsZW1lbnQpXG5cbiAgICBpZiAoT2JqZWN0LmtleXMocHJvcHMpLmxlbmd0aCkge1xuICAgICAgICAvLyBub3QgeWV0IHR5cGVkIGh0dHBzOi8vZ2l0aHViLmNvbS9iYXJ1Y2h2bHovcmVzcS9pc3N1ZXMvNjlcbiAgICAgICAgZWxlbWVudHMgPSAoZWxlbWVudHMgYXMgYW55KS5ieVByb3BzKHByb3BzKVxuICAgIH1cblxuICAgIGlmIChPYmplY3Qua2V5cyhzdGF0ZSkubGVuZ3RoKSB7XG4gICAgICAgIC8vIG5vdCB5ZXQgdHlwZWQgaHR0cHM6Ly9naXRodWIuY29tL2JhcnVjaHZsei9yZXNxL2lzc3Vlcy82OVxuICAgICAgICBlbGVtZW50cyA9IChlbGVtZW50cyBhcyBhbnkpLmJ5U3RhdGUoc3RhdGUpXG4gICAgfVxuXG4gICAgaWYgKCFlbGVtZW50cy5sZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIFtdXG4gICAgfVxuXG4gICAgLy8gcmVzcSByZXR1cm5zIGFuIGFycmF5IG9mIEhUTUxFbGVtZW50cyBpZiB0aGUgUmVhY3QgY29tcG9uZW50IGlzIGEgZnJhZ21lbnRcbiAgICAvLyB0aGlzIGF2b2lkcyBoYXZpbmcgbmVzdGVkIGFycmF5cyBvZiBub2RlcyB3aGljaCB0aGUgZHJpdmVyIGRvZXMgbm90IHVuZGVyc3RhbmRcbiAgICAvLyBbW2RpdiwgZGl2XSwgW2RpdiwgZGl2XV0gPT4gW2RpdiwgZGl2LCBkaXYsIGRpdl1cbiAgICBsZXQgbm9kZXM6IEhUTUxFbGVtZW50W10gPSBbXVxuXG4gICAgZWxlbWVudHMuZm9yRWFjaChmdW5jdGlvbiAoZWxlbWVudCkge1xuICAgICAgICBpZiAoZWxlbWVudC5pc0ZyYWdtZW50KSB7XG4gICAgICAgICAgICBub2RlcyA9IG5vZGVzLmNvbmNhdChlbGVtZW50Lm5vZGUgfHwgW10pXG4gICAgICAgIH0gZWxzZSBpZiAoZWxlbWVudC5ub2RlKSB7XG4gICAgICAgICAgICBub2Rlcy5wdXNoKGVsZW1lbnQubm9kZSlcbiAgICAgICAgfVxuICAgIH0pXG5cbiAgICByZXR1cm4gWy4uLm5vZGVzXVxufVxuIl0sCiAgIm1hcHBpbmdzIjogIjtBQVNPLElBQU0sa0JBQWtCLFNBQVNBLG1CQUFtQjtBQUN2RCxTQUFPLEtBQUssZ0JBQWdCO0FBQ2hDO0FBRU8sSUFBTSxTQUFTLFNBQVNDLFFBQzNCLFVBQ0EsT0FDQSxPQUNBLGNBQ0Y7QUFDRSxVQUFRLFNBQVMsQ0FBQztBQUNsQixVQUFRLFNBQVMsQ0FBQztBQUVsQixNQUFJLFVBQVUsT0FBTyxLQUFLLE1BQU0sVUFBVSxZQUFZO0FBRXRELE1BQUksT0FBTyxLQUFLLEtBQUssRUFBRSxRQUFRO0FBRTNCLGNBQVcsUUFBZ0IsUUFBUSxLQUFLO0FBQUEsRUFDNUM7QUFFQSxNQUFJLE9BQU8sS0FBSyxLQUFLLEVBQUUsUUFBUTtBQUUzQixjQUFXLFFBQWdCLFFBQVEsS0FBSztBQUFBLEVBQzVDO0FBRUEsTUFBSSxDQUFDLFFBQVEsTUFBTTtBQUNmLFdBQU8sRUFBRSxTQUFTLGdDQUFnQyxRQUFRLGlCQUFpQjtBQUFBLEVBQy9FO0FBSUEsU0FBTyxRQUFRLGNBQWMsUUFBUSxPQUM5QixRQUFRLEtBQWtDLENBQUMsSUFDNUMsUUFBUTtBQUNsQjtBQUVPLElBQU0sVUFBVSxTQUFTQyxTQUM1QixVQUNBLE9BQ0EsT0FDQSxjQUNGO0FBQ0UsTUFBSSxXQUFXLE9BQU8sS0FBSyxPQUFPLFVBQVUsWUFBWTtBQUV4RCxNQUFJLE9BQU8sS0FBSyxLQUFLLEVBQUUsUUFBUTtBQUUzQixlQUFZLFNBQWlCLFFBQVEsS0FBSztBQUFBLEVBQzlDO0FBRUEsTUFBSSxPQUFPLEtBQUssS0FBSyxFQUFFLFFBQVE7QUFFM0IsZUFBWSxTQUFpQixRQUFRLEtBQUs7QUFBQSxFQUM5QztBQUVBLE1BQUksQ0FBQyxTQUFTLFFBQVE7QUFDbEIsV0FBTyxDQUFDO0FBQUEsRUFDWjtBQUtBLE1BQUksUUFBdUIsQ0FBQztBQUU1QixXQUFTLFFBQVEsU0FBVSxTQUFTO0FBQ2hDLFFBQUksUUFBUSxZQUFZO0FBQ3BCLGNBQVEsTUFBTSxPQUFPLFFBQVEsUUFBUSxDQUFDLENBQUM7QUFBQSxJQUMzQyxXQUFXLFFBQVEsTUFBTTtBQUNyQixZQUFNLEtBQUssUUFBUSxJQUFJO0FBQUEsSUFDM0I7QUFBQSxFQUNKLENBQUM7QUFFRCxTQUFPLENBQUMsR0FBRyxLQUFLO0FBQ3BCOyIsCiAgIm5hbWVzIjogWyJ3YWl0VG9Mb2FkUmVhY3QiLCAicmVhY3QkIiwgInJlYWN0JCQiXQp9Cg==