UNPKG

testcafe

Version:

Automated browser testing for the modern web development stack.

62 lines 7.94 kB
"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==