UNPKG

flagpole

Version:

Simple and fast DOM integration, headless or headful browser, and REST API testing framework.

127 lines 5.91 kB
"use strict"; 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.queryDomElementWithinComponent = exports.queryAllDomElementsWithinComponent = exports.filter = exports.jsHandleArrayToComponents = exports.jsHandleArrayToHandles = exports.jsHandleIsNull = void 0; const extjs_component_1 = require("./extjs-component"); const value_1 = require("../value"); const util_1 = require("../util"); function jsHandleIsNull(handle) { return __awaiter(this, void 0, void 0, function* () { return yield handle.evaluate((r) => r === null); }); } exports.jsHandleIsNull = jsHandleIsNull; 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 queryAllDomElementsWithinComponent(component, selector) { return __awaiter(this, void 0, void 0, function* () { return component.evaluateHandle((c, selector) => c.el.dom.querySelectorAll(selector), selector); }); } exports.queryAllDomElementsWithinComponent = queryAllDomElementsWithinComponent; function queryDomElementWithinComponent(component, selector) { return __awaiter(this, void 0, void 0, function* () { const result = yield component.evaluateHandle((c, selector) => c.el.dom.querySelector(selector), selector); return (yield jsHandleIsNull(result)) ? null : result; }); } exports.queryDomElementWithinComponent = queryDomElementWithinComponent; 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* () { const result = yield context.evaluateHandle((c, selector) => c.down(selector), selector); return (yield jsHandleIsNull(result)) ? null : result; }); } exports.down = down; function child(context, selector) { return __awaiter(this, void 0, void 0, function* () { const result = yield context.evaluateHandle((c, selector) => c.child(selector), selector); return (yield jsHandleIsNull(result)) ? null : result; }); } exports.child = child; function up(context, selector) { return __awaiter(this, void 0, void 0, function* () { const result = yield context.evaluateHandle((c, selector) => c.up(selector), selector); return (yield jsHandleIsNull(result)) ? null : result; }); } exports.up = up; function parent(context) { return __awaiter(this, void 0, void 0, function* () { const result = yield context.evaluateHandle((c) => c.parent || c.getParent()); return (yield jsHandleIsNull(result)) ? null : result; }); } 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 extjs_component_1.ExtJsComponent.create(handle, context, name, path) : new value_1.Value(null, context, name, path); }); } exports.jsHandleToComponent = jsHandleToComponent; //# sourceMappingURL=extjs-helper.js.map