testcafe
Version:
Automated browser testing for the modern web development stack.
62 lines • 7.94 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 type_assertions_1 = require("../../errors/runtime/type-assertions");
const handle_tag_args_1 = __importDefault(require("../../utils/handle-tag-args"));
const testing_unit_1 = __importDefault(require("./testing-unit"));
const wrap_test_function_1 = __importDefault(require("../wrap-test-function"));
const assert_type_1 = __importDefault(require("../request-hooks/assert-type"));
const lodash_1 = require("lodash");
const testcafe_hammerhead_1 = require("testcafe-hammerhead");
class Fixture extends testing_unit_1.default {
constructor(testFile) {
super(testFile, 'fixture');
this.path = testFile.filename;
this.pageUrl = testcafe_hammerhead_1.SPECIAL_BLANK_PAGE;
this.beforeEachFn = null;
this.afterEachFn = null;
this.beforeFn = null;
this.afterFn = null;
this.requestHooks = [];
return this.apiOrigin;
}
_add(name, ...rest) {
name = handle_tag_args_1.default(name, rest);
type_assertions_1.assertType(type_assertions_1.is.string, 'apiOrigin', 'The fixture name', name);
this.name = name;
this.testFile.currentFixture = this;
return this.apiOrigin;
}
_before$(fn) {
type_assertions_1.assertType(type_assertions_1.is.function, 'before', 'fixture.before hook', fn);
this.beforeFn = fn;
return this.apiOrigin;
}
_after$(fn) {
type_assertions_1.assertType(type_assertions_1.is.function, 'after', 'fixture.after hook', fn);
this.afterFn = fn;
return this.apiOrigin;
}
_beforeEach$(fn) {
type_assertions_1.assertType(type_assertions_1.is.function, 'beforeEach', 'fixture.beforeEach hook', fn);
this.beforeEachFn = wrap_test_function_1.default(fn);
return this.apiOrigin;
}
_afterEach$(fn) {
type_assertions_1.assertType(type_assertions_1.is.function, 'afterEach', 'fixture.afterEach hook', fn);
this.afterEachFn = wrap_test_function_1.default(fn);
return this.apiOrigin;
}
_requestHooks$(...hooks) {
hooks = lodash_1.flattenDeep(hooks);
assert_type_1.default(hooks);
this.requestHooks = hooks;
return this.apiOrigin;
}
}
exports.default = Fixture;
testing_unit_1.default._makeAPIListForChildClass(Fixture);
module.exports = exports.default;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZml4dHVyZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hcGkvc3RydWN0dXJlL2ZpeHR1cmUuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSwwRUFBc0U7QUFDdEUsa0ZBQXdEO0FBQ3hELGtFQUF5QztBQUN6QywrRUFBcUQ7QUFDckQsK0VBQWlFO0FBQ2pFLG1DQUFnRDtBQUNoRCw2REFBeUQ7QUFFekQsTUFBcUIsT0FBUSxTQUFRLHNCQUFXO0lBQzVDLFlBQWEsUUFBUTtRQUNqQixLQUFLLENBQUMsUUFBUSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBRTNCLElBQUksQ0FBQyxJQUFJLEdBQUcsUUFBUSxDQUFDLFFBQVEsQ0FBQztRQUU5QixJQUFJLENBQUMsT0FBTyxHQUFHLHdDQUFrQixDQUFDO1FBRWxDLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxXQUFXLEdBQUksSUFBSSxDQUFDO1FBRXpCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxPQUFPLEdBQUksSUFBSSxDQUFDO1FBRXJCLElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDO1FBRXZCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUMxQixDQUFDO0lBRUQsSUFBSSxDQUFFLElBQUksRUFBRSxHQUFHLElBQUk7UUFDZixJQUFJLEdBQUcseUJBQWEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFFakMsNEJBQVUsQ0FBQyxvQkFBRSxDQUFDLE1BQU0sRUFBRSxXQUFXLEVBQUUsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFFN0QsSUFBSSxDQUFDLElBQUksR0FBc0IsSUFBSSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxRQUFRLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztRQUVwQyxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDMUIsQ0FBQztJQUVELFFBQVEsQ0FBRSxFQUFFO1FBQ1IsNEJBQVUsQ0FBQyxvQkFBRSxDQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUUscUJBQXFCLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFN0QsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7UUFFbkIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQzFCLENBQUM7SUFFRCxPQUFPLENBQUUsRUFBRTtRQUNQLDRCQUFVLENBQUMsb0JBQUUsQ0FBQyxRQUFRLEVBQUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRTNELElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO1FBRWxCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUMxQixDQUFDO0lBRUQsWUFBWSxDQUFFLEVBQUU7UUFDWiw0QkFBVSxDQUFDLG9CQUFFLENBQUMsUUFBUSxFQUFFLFlBQVksRUFBRSx5QkFBeUIsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVyRSxJQUFJLENBQUMsWUFBWSxHQUFHLDRCQUFnQixDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRXpDLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUMxQixDQUFDO0lBRUQsV0FBVyxDQUFFLEVBQUU7UUFDWCw0QkFBVSxDQUFDLG9CQUFFLENBQUMsUUFBUSxFQUFFLFdBQVcsRUFBRSx3QkFBd0IsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVuRSxJQUFJLENBQUMsV0FBVyxHQUFHLDRCQUFnQixDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRXhDLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUMxQixDQUFDO0lBRUQsY0FBYyxDQUFFLEdBQUcsS0FBSztRQUNwQixLQUFLLEdBQUcsb0JBQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUV2QixxQkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUU3QixJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztRQUUxQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDMUIsQ0FBQztDQUNKO0FBdkVELDBCQXVFQztBQUVELHNCQUFXLENBQUMseUJBQXlCLENBQUMsT0FBTyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhc3NlcnRUeXBlLCBpcyB9IGZyb20gJy4uLy4uL2Vycm9ycy9ydW50aW1lL3R5cGUtYXNzZXJ0aW9ucyc7XG5pbXBvcnQgaGFuZGxlVGFnQXJncyBmcm9tICcuLi8uLi91dGlscy9oYW5kbGUtdGFnLWFyZ3MnO1xuaW1wb3J0IFRlc3RpbmdVbml0IGZyb20gJy4vdGVzdGluZy11bml0JztcbmltcG9ydCB3cmFwVGVzdEZ1bmN0aW9uIGZyb20gJy4uL3dyYXAtdGVzdC1mdW5jdGlvbic7XG5pbXBvcnQgYXNzZXJ0UmVxdWVzdEhvb2tUeXBlIGZyb20gJy4uL3JlcXVlc3QtaG9va3MvYXNzZXJ0LXR5cGUnO1xuaW1wb3J0IHsgZmxhdHRlbkRlZXAgYXMgZmxhdHRlbiB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBTUEVDSUFMX0JMQU5LX1BBR0UgfSBmcm9tICd0ZXN0Y2FmZS1oYW1tZXJoZWFkJztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRml4dHVyZSBleHRlbmRzIFRlc3RpbmdVbml0IHtcbiAgICBjb25zdHJ1Y3RvciAodGVzdEZpbGUpIHtcbiAgICAgICAgc3VwZXIodGVzdEZpbGUsICdmaXh0dXJlJyk7XG5cbiAgICAgICAgdGhpcy5wYXRoID0gdGVzdEZpbGUuZmlsZW5hbWU7XG5cbiAgICAgICAgdGhpcy5wYWdlVXJsID0gU1BFQ0lBTF9CTEFOS19QQUdFO1xuXG4gICAgICAgIHRoaXMuYmVmb3JlRWFjaEZuID0gbnVsbDtcbiAgICAgICAgdGhpcy5hZnRlckVhY2hGbiAgPSBudWxsO1xuXG4gICAgICAgIHRoaXMuYmVmb3JlRm4gPSBudWxsO1xuICAgICAgICB0aGlzLmFmdGVyRm4gID0gbnVsbDtcblxuICAgICAgICB0aGlzLnJlcXVlc3RIb29rcyA9IFtdO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmFwaU9yaWdpbjtcbiAgICB9XG5cbiAgICBfYWRkIChuYW1lLCAuLi5yZXN0KSB7XG4gICAgICAgIG5hbWUgPSBoYW5kbGVUYWdBcmdzKG5hbWUsIHJlc3QpO1xuXG4gICAgICAgIGFzc2VydFR5cGUoaXMuc3RyaW5nLCAnYXBpT3JpZ2luJywgJ1RoZSBmaXh0dXJlIG5hbWUnLCBuYW1lKTtcblxuICAgICAgICB0aGlzLm5hbWUgICAgICAgICAgICAgICAgICAgID0gbmFtZTtcbiAgICAgICAgdGhpcy50ZXN0RmlsZS5jdXJyZW50Rml4dHVyZSA9IHRoaXM7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuYXBpT3JpZ2luO1xuICAgIH1cblxuICAgIF9iZWZvcmUkIChmbikge1xuICAgICAgICBhc3NlcnRUeXBlKGlzLmZ1bmN0aW9uLCAnYmVmb3JlJywgJ2ZpeHR1cmUuYmVmb3JlIGhvb2snLCBmbik7XG5cbiAgICAgICAgdGhpcy5iZWZvcmVGbiA9IGZuO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmFwaU9yaWdpbjtcbiAgICB9XG5cbiAgICBfYWZ0ZXIkIChmbikge1xuICAgICAgICBhc3NlcnRUeXBlKGlzLmZ1bmN0aW9uLCAnYWZ0ZXInLCAnZml4dHVyZS5hZnRlciBob29rJywgZm4pO1xuXG4gICAgICAgIHRoaXMuYWZ0ZXJGbiA9IGZuO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmFwaU9yaWdpbjtcbiAgICB9XG5cbiAgICBfYmVmb3JlRWFjaCQgKGZuKSB7XG4gICAgICAgIGFzc2VydFR5cGUoaXMuZnVuY3Rpb24sICdiZWZvcmVFYWNoJywgJ2ZpeHR1cmUuYmVmb3JlRWFjaCBob29rJywgZm4pO1xuXG4gICAgICAgIHRoaXMuYmVmb3JlRWFjaEZuID0gd3JhcFRlc3RGdW5jdGlvbihmbik7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuYXBpT3JpZ2luO1xuICAgIH1cblxuICAgIF9hZnRlckVhY2gkIChmbikge1xuICAgICAgICBhc3NlcnRUeXBlKGlzLmZ1bmN0aW9uLCAnYWZ0ZXJFYWNoJywgJ2ZpeHR1cmUuYWZ0ZXJFYWNoIGhvb2snLCBmbik7XG5cbiAgICAgICAgdGhpcy5hZnRlckVhY2hGbiA9IHdyYXBUZXN0RnVuY3Rpb24oZm4pO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmFwaU9yaWdpbjtcbiAgICB9XG5cbiAgICBfcmVxdWVzdEhvb2tzJCAoLi4uaG9va3MpIHtcbiAgICAgICAgaG9va3MgPSBmbGF0dGVuKGhvb2tzKTtcblxuICAgICAgICBhc3NlcnRSZXF1ZXN0SG9va1R5cGUoaG9va3MpO1xuXG4gICAgICAgIHRoaXMucmVxdWVzdEhvb2tzID0gaG9va3M7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuYXBpT3JpZ2luO1xuICAgIH1cbn1cblxuVGVzdGluZ1VuaXQuX21ha2VBUElMaXN0Rm9yQ2hpbGRDbGFzcyhGaXh0dXJlKTtcbiJdfQ==