flagpole
Version:
Simple and fast DOM integration, headless or headful browser, and REST API testing framework.
104 lines • 4.58 kB
JavaScript
;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.jsHandleToComponent = exports.ancestors = exports.parent = exports.up = exports.child = exports.down = exports.id = exports.queryWithinComponent = exports.query = exports.filter = exports.jsHandleArrayToComponents = exports.jsHandleArrayToHandles = void 0;
const extjscomponent_1 = require("./extjscomponent");
const value_1 = require("../value");
const util_1 = require("../util");
function jsHandleArrayToHandles(results) {
return __awaiter(this, void 0, void 0, function* () {
const length = yield results.evaluate((r) => r.length);
const handles = [];
for (let i = 0; i < length; i++) {
handles.push(yield results.evaluateHandle((r, i) => r[i], i));
}
return handles;
});
}
exports.jsHandleArrayToHandles = jsHandleArrayToHandles;
function jsHandleArrayToComponents(results, context, name, path) {
return __awaiter(this, void 0, void 0, function* () {
const handles = yield jsHandleArrayToHandles(results);
return util_1.asyncMap(handles, (handle, i) => __awaiter(this, void 0, void 0, function* () {
return yield jsHandleToComponent(handle, context, `${name} [${i}]`, path);
}));
});
}
exports.jsHandleArrayToComponents = jsHandleArrayToComponents;
function filter(jsHandleArray, filterFunction, ...args) {
return __awaiter(this, void 0, void 0, function* () {
const handles = yield jsHandleArrayToHandles(jsHandleArray);
return util_1.asyncMap(handles, (handle) => __awaiter(this, void 0, void 0, function* () {
return !!(yield handle.evaluateHandle.apply(handle, [
filterFunction,
...args,
]));
}));
});
}
exports.filter = filter;
function query(page, selector) {
return __awaiter(this, void 0, void 0, function* () {
return page.evaluateHandle((selector) => Ext.ComponentQuery.query(selector), selector);
});
}
exports.query = query;
function queryWithinComponent(component, selector) {
return __awaiter(this, void 0, void 0, function* () {
return component.evaluateHandle((c, selector) => c.query(selector), selector);
});
}
exports.queryWithinComponent = queryWithinComponent;
function id(component) {
return __awaiter(this, void 0, void 0, function* () {
return component.evaluateHandle((c) => c.getId());
});
}
exports.id = id;
function down(context, selector) {
return __awaiter(this, void 0, void 0, function* () {
return context.evaluateHandle((c, selector) => c.down(selector), selector);
});
}
exports.down = down;
function child(context, selector) {
return __awaiter(this, void 0, void 0, function* () {
return context.evaluateHandle((c, selector) => c.child(selector), selector);
});
}
exports.child = child;
function up(context, selector) {
return __awaiter(this, void 0, void 0, function* () {
return context.evaluateHandle((c, selector) => c.up(selector), selector);
});
}
exports.up = up;
function parent(context) {
return __awaiter(this, void 0, void 0, function* () {
return context.evaluateHandle((c) => c.parent || c.getParent());
});
}
exports.parent = parent;
function ancestors(context, selector) {
return __awaiter(this, void 0, void 0, function* () {
return context.evaluateHandle((c, selector) => c.getAncestors(selector), selector);
});
}
exports.ancestors = ancestors;
function jsHandleToComponent(handle, context, name, path) {
return __awaiter(this, void 0, void 0, function* () {
return handle
? yield extjscomponent_1.ExtJsComponent.create(handle, context, name, path)
: new value_1.Value(null, context, name, path);
});
}
exports.jsHandleToComponent = jsHandleToComponent;
//# sourceMappingURL=ext.helper.js.map