testcafe
Version:
Automated browser testing for the modern web development stack.
79 lines • 11.5 kB
JavaScript
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const test_page_url_1 = require("../test-page-url");
const handle_tag_args_1 = __importDefault(require("../../utils/handle-tag-args"));
const delegated_api_1 = require("../../utils/delegated-api");
const type_assertions_1 = require("../../errors/runtime/type-assertions");
class TestingUnit {
constructor(testFile, unitTypeName) {
this.testFile = testFile;
this.unitTypeName = unitTypeName;
this.name = null;
this.pageUrl = null;
this.authCredentials = null;
this.meta = {};
this.only = false;
this.skip = false;
this.disablePageReloads = void 0;
const unit = this;
this.apiOrigin = function apiOrigin(...args) {
return unit._add(...args);
};
delegated_api_1.delegateAPI(this.apiOrigin, this.constructor.API_LIST, { handler: this });
}
_add() {
throw new Error('Not implemented');
}
_only$getter() {
this.only = true;
return this.apiOrigin;
}
_skip$getter() {
this.skip = true;
return this.apiOrigin;
}
_disablePageReloads$getter() {
this.disablePageReloads = true;
return this.apiOrigin;
}
_enablePageReloads$getter() {
this.disablePageReloads = false;
return this.apiOrigin;
}
_page$(url, ...rest) {
this.pageUrl = handle_tag_args_1.default(url, rest);
type_assertions_1.assertType(type_assertions_1.is.string, 'page', 'The page URL', this.pageUrl);
test_page_url_1.assertUrl(this.pageUrl, 'page');
this.pageUrl = test_page_url_1.resolvePageUrl(this.pageUrl, this.testFile.filename);
return this.apiOrigin;
}
_httpAuth$(credentials) {
type_assertions_1.assertType(type_assertions_1.is.nonNullObject, 'httpAuth', 'credentials', credentials);
type_assertions_1.assertType(type_assertions_1.is.string, 'httpAuth', 'credentials.username', credentials.username);
type_assertions_1.assertType(type_assertions_1.is.string, 'httpAuth', 'credentials.password', credentials.password);
if (credentials.domain)
type_assertions_1.assertType(type_assertions_1.is.string, 'httpAuth', 'credentials.domain', credentials.domain);
if (credentials.workstation)
type_assertions_1.assertType(type_assertions_1.is.string, 'httpAuth', 'credentials.workstation', credentials.workstation);
this.authCredentials = credentials;
return this.apiOrigin;
}
_meta$(...args) {
type_assertions_1.assertType([type_assertions_1.is.string, type_assertions_1.is.nonNullObject], 'meta', `${this.unitTypeName}.meta`, args[0]);
const data = typeof args[0] === 'string' ? { [args[0]]: args[1] } : args[0];
Object.keys(data).forEach(key => {
this.meta[key] = data[key];
});
return this.apiOrigin;
}
static _makeAPIListForChildClass(ChildClass) {
ChildClass.API_LIST = TestingUnit.API_LIST.concat(delegated_api_1.getDelegatedAPIList(ChildClass.prototype));
}
}
exports.default = TestingUnit;
TestingUnit.API_LIST = delegated_api_1.getDelegatedAPIList(TestingUnit.prototype);
module.exports = exports.default;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdGluZy11bml0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FwaS9zdHJ1Y3R1cmUvdGVzdGluZy11bml0LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsb0RBQTZEO0FBQzdELGtGQUF3RDtBQUN4RCw2REFBNkU7QUFDN0UsMEVBQXNFO0FBR3RFLE1BQXFCLFdBQVc7SUFDNUIsWUFBYSxRQUFRLEVBQUUsWUFBWTtRQUMvQixJQUFJLENBQUMsUUFBUSxHQUFPLFFBQVEsQ0FBQztRQUM3QixJQUFJLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQztRQUVqQyxJQUFJLENBQUMsSUFBSSxHQUFjLElBQUksQ0FBQztRQUM1QixJQUFJLENBQUMsT0FBTyxHQUFXLElBQUksQ0FBQztRQUM1QixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQztRQUM1QixJQUFJLENBQUMsSUFBSSxHQUFjLEVBQUUsQ0FBQztRQUMxQixJQUFJLENBQUMsSUFBSSxHQUFjLEtBQUssQ0FBQztRQUM3QixJQUFJLENBQUMsSUFBSSxHQUFjLEtBQUssQ0FBQztRQUU3QixJQUFJLENBQUMsa0JBQWtCLEdBQUcsS0FBSyxDQUFDLENBQUM7UUFFakMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBRWxCLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxTQUFTLENBQUUsR0FBRyxJQUFJO1lBQ3hDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO1FBQzlCLENBQUMsQ0FBQztRQUVGLDJCQUFXLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzlFLENBQUM7SUFFRCxJQUFJO1FBQ0EsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxZQUFZO1FB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MUIsQ0FBQztJQUVELE1BQU0sQ0FBQyx5QkFBeUIsQ0FBRSxVQUFVO1FBQ3hDLFVBQVUsQ0FBQyxRQUFRLEdBQUcsV0FBVyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsbUNBQW1CLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7SUFDakcsQ0FBQztDQUNKO0FBN0ZELDhCQTZGQztBQUVELFdBQVcsQ0FBQyxRQUFRLEdBQUcsbUNBQW1CLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYXNzZXJ0VXJsLCByZXNvbHZlUGFnZVVybCB9IGZyb20gJy4uL3Rlc3QtcGFnZS11cmwnO1xuaW1wb3J0IGhhbmRsZVRhZ0FyZ3MgZnJvbSAnLi4vLi4vdXRpbHMvaGFuZGxlLXRhZy1hcmdzJztcbmltcG9ydCB7IGRlbGVnYXRlQVBJLCBnZXREZWxlZ2F0ZWRBUElMaXN0IH0gZnJvbSAnLi4vLi4vdXRpbHMvZGVsZWdhdGVkLWFwaSc7XG5pbXBvcnQgeyBhc3NlcnRUeXBlLCBpcyB9IGZyb20gJy4uLy4uL2Vycm9ycy9ydW50aW1lL3R5cGUtYXNzZXJ0aW9ucyc7XG5cblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVGVzdGluZ1VuaXQge1xuICAgIGNvbnN0cnVjdG9yICh0ZXN0RmlsZSwgdW5pdFR5cGVOYW1lKSB7XG4gICAgICAgIHRoaXMudGVzdEZpbGUgICAgID0gdGVzdEZpbGU7XG4gICAgICAgIHRoaXMudW5pdFR5cGVOYW1lID0gdW5pdFR5cGVOYW1lO1xuXG4gICAgICAgIHRoaXMubmFtZSAgICAgICAgICAgID0gbnVsbDtcbiAgICAgICAgdGhpcy5wYWdlVXJsICAgICAgICAgPSBudWxsO1xuICAgICAgICB0aGlzLmF1dGhDcmVkZW50aWFscyA9IG51bGw7XG4gICAgICAgIHRoaXMubWV0YSAgICAgICAgICAgID0ge307XG4gICAgICAgIHRoaXMub25seSAgICAgICAgICAgID0gZmFsc2U7XG4gICAgICAgIHRoaXMuc2tpcCAgICAgICAgICAgID0gZmFsc2U7XG5cbiAgICAgICAgdGhpcy5kaXNhYmxlUGFnZVJlbG9hZHMgPSB2b2lkIDA7XG5cbiAgICAgICAgY29uc3QgdW5pdCA9IHRoaXM7XG5cbiAgICAgICAgdGhpcy5hcGlPcmlnaW4gPSBmdW5jdGlvbiBhcGlPcmlnaW4gKC4uLmFyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybiB1bml0Ll9hZGQoLi4uYXJncyk7XG4gICAgICAgIH07XG5cbiAgICAgICAgZGVsZWdhdGVBUEkodGhpcy5hcGlPcmlnaW4sIHRoaXMuY29uc3RydWN0b3IuQVBJX0xJU1QsIHsgaGFuZGxlcjogdGhpcyB9KTtcbiAgICB9XG5cbiAgICBfYWRkICgpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdOb3QgaW1wbGVtZW50ZWQnKTtcbiAgICB9XG5cbiAgICBfb25seSRnZXR0ZXIgKCkge1xuICAgICAgICB0aGlzLm9ubHkgPSB0cnVlO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmFwaU9yaWdpbjtcbiAgICB9XG5cbiAgICBfc2tpcCRnZXR0ZXIgKCkge1xuICAgICAgICB0aGlzLnNraXAgPSB0cnVlO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmFwaU9yaWdpbjtcbiAgICB9XG5cbiAgICBfZGlzYWJsZVBhZ2VSZWxvYWRzJGdldHRlciAoKSB7XG4gICAgICAgIHRoaXMuZGlzYWJsZVBhZ2VSZWxvYWRzID0gdHJ1ZTtcblxuICAgICAgICByZXR1cm4gdGhpcy5hcGlPcmlnaW47XG4gICAgfVxuXG4gICAgX2VuYWJsZVBhZ2VSZWxvYWRzJGdldHRlciAoKSB7XG4gICAgICAgIHRoaXMuZGlzYWJsZVBhZ2VSZWxvYWRzID0gZmFsc2U7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuYXBpT3JpZ2luO1xuICAgIH1cblxuICAgIF9wYWdlJCAodXJsLCAuLi5yZXN0KSB7XG4gICAgICAgIHRoaXMucGFnZVVybCA9IGhhbmRsZVRhZ0FyZ3ModXJsLCByZXN0KTtcblxuICAgICAgICBhc3NlcnRUeXBlKGlzLnN0cmluZywgJ3BhZ2UnLCAnVGhlIHBhZ2UgVVJMJywgdGhpcy5wYWdlVXJsKTtcblxuICAgICAgICBhc3NlcnRVcmwodGhpcy5wYWdlVXJsLCAncGFnZScpO1xuXG4gICAgICAgIHRoaXMucGFnZVVybCA9IHJlc29sdmVQYWdlVXJsKHRoaXMucGFnZVVybCwgdGhpcy50ZXN0RmlsZS5maWxlbmFtZSk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuYXBpT3JpZ2luO1xuICAgIH1cblxuICAgIF9odHRwQXV0aCQgKGNyZWRlbnRpYWxzKSB7XG4gICAgICAgIGFzc2VydFR5cGUoaXMubm9uTnVsbE9iamVjdCwgJ2h0dHBBdXRoJywgJ2NyZWRlbnRpYWxzJywgY3JlZGVudGlhbHMpO1xuICAgICAgICBhc3NlcnRUeXBlKGlzLnN0cmluZywgJ2h0dHBBdXRoJywgJ2NyZWRlbnRpYWxzLnVzZXJuYW1lJywgY3JlZGVudGlhbHMudXNlcm5hbWUpO1xuICAgICAgICBhc3NlcnRUeXBlKGlzLnN0cmluZywgJ2h0dHBBdXRoJywgJ2NyZWRlbnRpYWxzLnBhc3N3b3JkJywgY3JlZGVudGlhbHMucGFzc3dvcmQpO1xuXG4gICAgICAgIGlmIChjcmVkZW50aWFscy5kb21haW4pXG4gICAgICAgICAgICBhc3NlcnRUeXBlKGlzLnN0cmluZywgJ2h0dHBBdXRoJywgJ2NyZWRlbnRpYWxzLmRvbWFpbicsIGNyZWRlbnRpYWxzLmRvbWFpbik7XG4gICAgICAgIGlmIChjcmVkZW50aWFscy53b3Jrc3RhdGlvbilcbiAgICAgICAgICAgIGFzc2VydFR5cGUoaXMuc3RyaW5nLCAnaHR0cEF1dGgnLCAnY3JlZGVudGlhbHMud29ya3N0YXRpb24nLCBjcmVkZW50aWFscy53b3Jrc3RhdGlvbik7XG5cbiAgICAgICAgdGhpcy5hdXRoQ3JlZGVudGlhbHMgPSBjcmVkZW50aWFscztcblxuICAgICAgICByZXR1cm4gdGhpcy5hcGlPcmlnaW47XG4gICAgfVxuXG4gICAgX21ldGEkICguLi5hcmdzKSB7XG4gICAgICAgIGFzc2VydFR5cGUoW2lzLnN0cmluZywgaXMubm9uTnVsbE9iamVjdF0sICdtZXRhJywgYCR7dGhpcy51bml0VHlwZU5hbWV9Lm1ldGFgLCBhcmdzWzBdKTtcblxuICAgICAgICBjb25zdCBkYXRhID0gdHlwZW9mIGFyZ3NbMF0gPT09ICdzdHJpbmcnID8geyBbYXJnc1swXV06IGFyZ3NbMV0gfSA6IGFyZ3NbMF07XG5cbiAgICAgICAgT2JqZWN0LmtleXMoZGF0YSkuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgICAgICAgdGhpcy5tZXRhW2tleV0gPSBkYXRhW2tleV07XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmFwaU9yaWdpbjtcbiAgICB9XG5cbiAgICBzdGF0aWMgX21ha2VBUElMaXN0Rm9yQ2hpbGRDbGFzcyAoQ2hpbGRDbGFzcykge1xuICAgICAgICBDaGlsZENsYXNzLkFQSV9MSVNUID0gVGVzdGluZ1VuaXQuQVBJX0xJU1QuY29uY2F0KGdldERlbGVnYXRlZEFQSUxpc3QoQ2hpbGRDbGFzcy5wcm90b3R5cGUpKTtcbiAgICB9XG59XG5cblRlc3RpbmdVbml0LkFQSV9MSVNUID0gZ2V0RGVsZWdhdGVkQVBJTGlzdChUZXN0aW5nVW5pdC5wcm90b3R5cGUpO1xuXG5cbiJdfQ==