flagpole
Version:
Simple and fast DOM integration, headless or headful browser, and REST API testing framework.
127 lines • 5.91 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.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
;