@browserstack/testcafe
Version:
Automated browser testing for the modern web development stack.
40 lines • 5.76 kB
JavaScript
;
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==