UNPKG

@browserstack/testcafe

Version:

Automated browser testing for the modern web development stack.

40 lines 5.76 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const testcafe_hammerhead_1 = require("testcafe-hammerhead"); const lodash_1 = require("lodash"); const test_run_1 = require("../../errors/test-run"); class RequestHook { constructor(requestFilterRules, responseEventConfigureOpts) { this.requestFilterRules = this._prepareRequestFilterRules(requestFilterRules); this._instantiatedRequestFilterRules = []; this.responseEventConfigureOpts = responseEventConfigureOpts; this.warningLog = null; } _prepareRequestFilterRules(rules) { if (rules) return lodash_1.castArray(rules); return [testcafe_hammerhead_1.RequestFilterRule.ANY]; } _instantiateRequestFilterRules() { this._instantiatedRequestFilterRules = []; this.requestFilterRules.forEach(rule => { const instantiatedRule = rule instanceof testcafe_hammerhead_1.RequestFilterRule ? rule : new testcafe_hammerhead_1.RequestFilterRule(rule); this._instantiatedRequestFilterRules.push(instantiatedRule); }); } async onRequest( /*RequestEvent event*/) { throw new test_run_1.RequestHookNotImplementedMethodError('onRequest', this.constructor.name); } _onConfigureResponse(event) { if (!this.responseEventConfigureOpts) return; event.opts.includeHeaders = this.responseEventConfigureOpts.includeHeaders; event.opts.includeBody = this.responseEventConfigureOpts.includeBody; } async onResponse( /*ResponseEvent event*/) { throw new test_run_1.RequestHookNotImplementedMethodError('onResponse', this.constructor.name); } } exports.default = RequestHook; module.exports = exports.default; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9vay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hcGkvcmVxdWVzdC1ob29rcy9ob29rLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsNkRBQXdEO0FBQ3hELG1DQUFtQztBQUNuQyxvREFBNkU7QUFFN0UsTUFBcUIsV0FBVztJQUM1QixZQUFhLGtCQUFrQixFQUFFLDBCQUEwQjtRQUN2RCxJQUFJLENBQUMsa0JBQWtCLEdBQWdCLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQzNGLElBQUksQ0FBQywrQkFBK0IsR0FBRyxFQUFFLENBQUM7UUFDMUMsSUFBSSxDQUFDLDBCQUEwQixHQUFRLDBCQUEwQixDQUFDO1FBRWxFLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO0lBQzNCLENBQUM7SUFFRCwwQkFBMEIsQ0FBRSxLQUFLO1FBQzdCLElBQUksS0FBSztZQUNMLE9BQU8sa0JBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUU1QixPQUFPLENBQUMsdUNBQWlCLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVELDhCQUE4QjtRQUMxQixJQUFJLENBQUMsK0JBQStCLEdBQUcsRUFBRSxDQUFDO1FBRTFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDbkMsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLFlBQVksdUNBQWlCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSx1Q0FBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUVoRyxJQUFJLENBQUMsK0JBQStCLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDaEUsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsS0FBSyxDQUFDLFNBQVMsRUFBRSxzQkFBc0I7UUFDbkMsTUFBTSxJQUFJLCtDQUFvQyxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3ZGLENBQUM7SUFFRCxvQkFBb0IsQ0FBRSxLQUFLO1FBQ3ZCLElBQUksQ0FBQyxJQUFJLENBQUMsMEJBQTBCO1lBQ2hDLE9BQU87UUFFWCxLQUFLLENBQUMsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsMEJBQTBCLENBQUMsY0FBYyxDQUFDO1FBQzNFLEtBQUssQ0FBQyxJQUFJLENBQUMsV0FBVyxHQUFNLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxXQUFXLENBQUM7SUFDNUUsQ0FBQztJQUVELEtBQUssQ0FBQyxVQUFVLEVBQUUsdUJBQXVCO1FBQ3JDLE1BQU0sSUFBSSwrQ0FBb0MsQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN4RixDQUFDO0NBQ0o7QUF6Q0QsOEJBeUNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVxdWVzdEZpbHRlclJ1bGUgfSBmcm9tICd0ZXN0Y2FmZS1oYW1tZXJoZWFkJztcbmltcG9ydCB7IGNhc3RBcnJheSB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBSZXF1ZXN0SG9va05vdEltcGxlbWVudGVkTWV0aG9kRXJyb3IgfSBmcm9tICcuLi8uLi9lcnJvcnMvdGVzdC1ydW4nO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBSZXF1ZXN0SG9vayB7XG4gICAgY29uc3RydWN0b3IgKHJlcXVlc3RGaWx0ZXJSdWxlcywgcmVzcG9uc2VFdmVudENvbmZpZ3VyZU9wdHMpIHtcbiAgICAgICAgdGhpcy5yZXF1ZXN0RmlsdGVyUnVsZXMgICAgICAgICAgICAgID0gdGhpcy5fcHJlcGFyZVJlcXVlc3RGaWx0ZXJSdWxlcyhyZXF1ZXN0RmlsdGVyUnVsZXMpO1xuICAgICAgICB0aGlzLl9pbnN0YW50aWF0ZWRSZXF1ZXN0RmlsdGVyUnVsZXMgPSBbXTtcbiAgICAgICAgdGhpcy5yZXNwb25zZUV2ZW50Q29uZmlndXJlT3B0cyAgICAgID0gcmVzcG9uc2VFdmVudENvbmZpZ3VyZU9wdHM7XG5cbiAgICAgICAgdGhpcy53YXJuaW5nTG9nID0gbnVsbDtcbiAgICB9XG5cbiAgICBfcHJlcGFyZVJlcXVlc3RGaWx0ZXJSdWxlcyAocnVsZXMpIHtcbiAgICAgICAgaWYgKHJ1bGVzKVxuICAgICAgICAgICAgcmV0dXJuIGNhc3RBcnJheShydWxlcyk7XG5cbiAgICAgICAgcmV0dXJuIFtSZXF1ZXN0RmlsdGVyUnVsZS5BTlldO1xuICAgIH1cblxuICAgIF9pbnN0YW50aWF0ZVJlcXVlc3RGaWx0ZXJSdWxlcyAoKSB7XG4gICAgICAgIHRoaXMuX2luc3RhbnRpYXRlZFJlcXVlc3RGaWx0ZXJSdWxlcyA9IFtdO1xuXG4gICAgICAgIHRoaXMucmVxdWVzdEZpbHRlclJ1bGVzLmZvckVhY2gocnVsZSA9PiB7XG4gICAgICAgICAgICBjb25zdCBpbnN0YW50aWF0ZWRSdWxlID0gcnVsZSBpbnN0YW5jZW9mIFJlcXVlc3RGaWx0ZXJSdWxlID8gcnVsZSA6IG5ldyBSZXF1ZXN0RmlsdGVyUnVsZShydWxlKTtcblxuICAgICAgICAgICAgdGhpcy5faW5zdGFudGlhdGVkUmVxdWVzdEZpbHRlclJ1bGVzLnB1c2goaW5zdGFudGlhdGVkUnVsZSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGFzeW5jIG9uUmVxdWVzdCAoLypSZXF1ZXN0RXZlbnQgZXZlbnQqLykge1xuICAgICAgICB0aHJvdyBuZXcgUmVxdWVzdEhvb2tOb3RJbXBsZW1lbnRlZE1ldGhvZEVycm9yKCdvblJlcXVlc3QnLCB0aGlzLmNvbnN0cnVjdG9yLm5hbWUpO1xuICAgIH1cblxuICAgIF9vbkNvbmZpZ3VyZVJlc3BvbnNlIChldmVudCkge1xuICAgICAgICBpZiAoIXRoaXMucmVzcG9uc2VFdmVudENvbmZpZ3VyZU9wdHMpXG4gICAgICAgICAgICByZXR1cm47XG5cbiAgICAgICAgZXZlbnQub3B0cy5pbmNsdWRlSGVhZGVycyA9IHRoaXMucmVzcG9uc2VFdmVudENvbmZpZ3VyZU9wdHMuaW5jbHVkZUhlYWRlcnM7XG4gICAgICAgIGV2ZW50Lm9wdHMuaW5jbHVkZUJvZHkgICAgPSB0aGlzLnJlc3BvbnNlRXZlbnRDb25maWd1cmVPcHRzLmluY2x1ZGVCb2R5O1xuICAgIH1cblxuICAgIGFzeW5jIG9uUmVzcG9uc2UgKC8qUmVzcG9uc2VFdmVudCBldmVudCovKSB7XG4gICAgICAgIHRocm93IG5ldyBSZXF1ZXN0SG9va05vdEltcGxlbWVudGVkTWV0aG9kRXJyb3IoJ29uUmVzcG9uc2UnLCB0aGlzLmNvbnN0cnVjdG9yLm5hbWUpO1xuICAgIH1cbn1cbiJdfQ==