@luminati-io/webdriverio8
Version:
Next-gen browser and mobile automation test framework for Node.js
52 lines • 4.56 kB
JavaScript
export const waitToLoadReact = function waitToLoadReact() {
window.resq.waitToLoadReact();
};
export const react$ = function react$(selector, props, state, reactElement) {
props = props || {};
state = state || {};
let element = window.resq.resq$(selector, reactElement);
if (Object.keys(props).length) {
// not yet typed https://github.com/baruchvlz/resq/issues/69
element = element.byProps(props);
}
if (Object.keys(state).length) {
// not yet typed https://github.com/baruchvlz/resq/issues/69
element = element.byState(state);
}
if (!element.name) {
return { message: `React element with selector "${selector}" wasn't found` };
}
// resq returns an array of HTMLElements if the React component is a fragment
// if the element is a fragment, we return the first child to be passed into the driver
return element.isFragment && element.node
? element.node[0]
: element.node;
};
export const react$$ = function react$$(selector, props, state, reactElement) {
let elements = window.resq.resq$$(selector, reactElement);
if (Object.keys(props).length) {
// not yet typed https://github.com/baruchvlz/resq/issues/69
elements = elements.byProps(props);
}
if (Object.keys(state).length) {
// not yet typed https://github.com/baruchvlz/resq/issues/69
elements = elements.byState(state);
}
if (!elements.length) {
return [];
}
// resq returns an array of HTMLElements if the React component is a fragment
// this avoids having nested arrays of nodes which the driver does not understand
// [[div, div], [div, div]] => [div, div, div, div]
let nodes = [];
elements.forEach(function (element) {
if (element.isFragment) {
nodes = nodes.concat(element.node || []);
}
else if (element.node) {
nodes.push(element.node);
}
});
return [...nodes];
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzcS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JpcHRzL3Jlc3EudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBUUEsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLFNBQVMsZUFBZTtJQUNuRCxNQUFNLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFBO0FBQ2pDLENBQUMsQ0FBQTtBQUVELE1BQU0sQ0FBQyxNQUFNLE1BQU0sR0FBRyxTQUFTLE1BQU0sQ0FDakMsUUFBZ0IsRUFDaEIsS0FBWSxFQUNaLEtBQTBCLEVBQzFCLFlBQXlCO0lBRXpCLEtBQUssR0FBRyxLQUFLLElBQUksRUFBRSxDQUFBO0lBQ25CLEtBQUssR0FBRyxLQUFLLElBQUksRUFBRSxDQUFBO0lBRW5CLElBQUksT0FBTyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxZQUFZLENBQUMsQ0FBQTtJQUV2RCxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDNUIsNERBQTREO1FBQzVELE9BQU8sR0FBSSxPQUFlLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQzdDLENBQUM7SUFFRCxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDNUIsNERBQTREO1FBQzVELE9BQU8sR0FBSSxPQUFlLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQzdDLENBQUM7SUFFRCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2hCLE9BQU8sRUFBRSxPQUFPLEVBQUUsZ0NBQWdDLFFBQVEsZ0JBQWdCLEVBQUUsQ0FBQTtJQUNoRixDQUFDO0lBRUQsNkVBQTZFO0lBQzdFLHVGQUF1RjtJQUN2RixPQUFPLE9BQU8sQ0FBQyxVQUFVLElBQUksT0FBTyxDQUFDLElBQUk7UUFDckMsQ0FBQyxDQUFFLE9BQU8sQ0FBQyxJQUE2QixDQUFDLENBQUMsQ0FBQztRQUMzQyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQTtBQUN0QixDQUFDLENBQUE7QUFFRCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsU0FBUyxPQUFPLENBQ25DLFFBQWdCLEVBQ2hCLEtBQVksRUFDWixLQUE2QixFQUM3QixZQUF5QjtJQUV6QixJQUFJLFFBQVEsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsWUFBWSxDQUFDLENBQUE7SUFFekQsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQzVCLDREQUE0RDtRQUM1RCxRQUFRLEdBQUksUUFBZ0IsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDL0MsQ0FBQztJQUVELElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUM1Qiw0REFBNEQ7UUFDNUQsUUFBUSxHQUFJLFFBQWdCLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQy9DLENBQUM7SUFFRCxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ25CLE9BQU8sRUFBRSxDQUFBO0lBQ2IsQ0FBQztJQUVELDZFQUE2RTtJQUM3RSxpRkFBaUY7SUFDakYsbURBQW1EO0lBQ25ELElBQUksS0FBSyxHQUFrQixFQUFFLENBQUE7SUFFN0IsUUFBUSxDQUFDLE9BQU8sQ0FBQyxVQUFVLE9BQU87UUFDOUIsSUFBSSxPQUFPLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDckIsS0FBSyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQTtRQUM1QyxDQUFDO2FBQU0sSUFBSSxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDdEIsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDNUIsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFBO0lBRUYsT0FBTyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUE7QUFDckIsQ0FBQyxDQUFBIn0=