UNPKG

@luminati-io/webdriverio8

Version:

Next-gen browser and mobile automation test framework for Node.js

76 lines 5.67 kB
import Interception from './index.js'; import { ERROR_REASON } from '../../constants.js'; /** * Network interception class based on a WebDriver compliant endpoint. * Instead of directly using the CDP with Puppeteer this version of the * class uses a WebDriver extension to trigger the same behavior on a * compliant backend. */ export default class WebDriverInterception extends Interception { mockId; async init() { if (this.url instanceof RegExp) { throw new Error('Regular Expressions as mock url are not supported'); } const { mockId } = await this.browser.mockRequest(this.url, this.filterOptions); this.mockId = mockId; } on() { throw new Error('Not implemented'); // eslint-disable-next-line no-unreachable return this; } /** * allows access to all requests made with given pattern */ get calls() { return this.browser.call(() => this.browser.getMockCalls(this.mockId)); } /** * Resets all information stored in the `mock.calls` set. */ clear() { return this.browser.call(async () => this.browser.clearMockCalls(this.mockId)); } /** * Does everything that `mock.clear()` does, and also * removes any mocked return values or implementations. */ async restore() { await this.browser.call(async () => this.browser.clearMockCalls(this.mockId, true)); } /** * Always respond with same overwrite * @param {*} overwrites payload to overwrite the response * @param {*} params additional respond parameters to overwrite */ respond(overwrite, params = {}) { return this.browser.call(async () => this.browser.respondMock(this.mockId, { overwrite, params, sticky: true })); } /** * Respond request once with given overwrite * @param {*} overwrites payload to overwrite the response * @param {*} params additional respond parameters to overwrite */ respondOnce(overwrite, params = {}) { return this.browser.call(async () => this.browser.respondMock(this.mockId, { overwrite, params })); } /** * Abort the request with an error code * @param {string} errorCode error code of the response */ abort(errorReason, sticky = true) { if (typeof errorReason !== 'string' || !ERROR_REASON.includes(errorReason)) { throw new Error(`Invalid value for errorReason, allowed are: ${ERROR_REASON.join(', ')}`); } return this.browser.call(async () => this.browser.respondMock(this.mockId, { errorReason, sticky })); } /** * Abort the request once with an error code * @param {string} errorReason error code of the response */ abortOnce(errorReason) { return this.abort(errorReason, false); } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViZHJpdmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3V0aWxzL2ludGVyY2VwdGlvbi93ZWJkcml2ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxZQUFZLE1BQU0sWUFBWSxDQUFBO0FBQ3JDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQTtBQUdqRDs7Ozs7R0FLRztBQUNILE1BQU0sQ0FBQyxPQUFPLE9BQU8scUJBQXNCLFNBQVEsWUFBWTtJQUMzRCxNQUFNLENBQVM7SUFFZixLQUFLLENBQUMsSUFBSTtRQUNOLElBQUksSUFBSSxDQUFDLEdBQUcsWUFBWSxNQUFNLEVBQUUsQ0FBQztZQUM3QixNQUFNLElBQUksS0FBSyxDQUFDLG1EQUFtRCxDQUFDLENBQUE7UUFDeEUsQ0FBQztRQUNELE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFBO1FBQy9FLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFBO0lBQ3hCLENBQUM7SUFFRCxFQUFFO1FBQ0UsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxDQUFBO1FBRWxDLDBDQUEwQztRQUMxQyxPQUFPLElBQUksQ0FBQTtJQUNmLENBQUM7SUFFRDs7T0FFRztJQUNILElBQUksS0FBSztRQUNMLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQzFCLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxNQUFnQixDQUNsRCxDQUFDLENBQUE7SUFDTixDQUFDO0lBRUQ7O09BRUc7SUFDSCxLQUFLO1FBQ0QsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FDcEIsS0FBSyxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsTUFBZ0IsQ0FBQyxDQUFDLENBQUE7SUFDdkUsQ0FBQztJQUVEOzs7T0FHRztJQUNILEtBQUssQ0FBQyxPQUFPO1FBQ1QsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FDbkIsS0FBSyxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsTUFBZ0IsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQzdFLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsT0FBTyxDQUFFLFNBQXdCLEVBQUUsU0FBNkIsRUFBRTtRQUM5RCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUNwQixLQUFLLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUNoQyxJQUFJLENBQUMsTUFBZ0IsRUFDckIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FDdEMsQ0FDSixDQUFBO0lBQ0wsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxXQUFXLENBQUUsU0FBd0IsRUFBRSxTQUE2QixFQUFFO1FBQ2xFLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQ3BCLEtBQUssSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQ2hDLElBQUksQ0FBQyxNQUFnQixFQUNyQixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsQ0FDeEIsQ0FDSixDQUFBO0lBQ0wsQ0FBQztJQUVEOzs7T0FHRztJQUNILEtBQUssQ0FBRSxXQUFtQixFQUFFLFNBQWtCLElBQUk7UUFDOUMsSUFBSSxPQUFPLFdBQVcsS0FBSyxRQUFRLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUM7WUFDekUsTUFBTSxJQUFJLEtBQUssQ0FBQywrQ0FBK0MsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUE7UUFDN0YsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQ3BCLEtBQUssSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQ2hDLElBQUksQ0FBQyxNQUFnQixFQUNyQixFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsQ0FDMUIsQ0FDSixDQUFBO0lBQ0wsQ0FBQztJQUVEOzs7T0FHRztJQUNILFNBQVMsQ0FBRSxXQUFtQjtRQUMxQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLEtBQUssQ0FBQyxDQUFBO0lBQ3pDLENBQUM7Q0FDSiJ9