UNPKG

webdriverio

Version:

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

45 lines (33 loc) 1.29 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = mock; var _devtools = _interopRequireDefault(require("../../utils/interception/devtools")); var _webdriver = _interopRequireDefault(require("../../utils/interception/webdriver")); var _utils = require("../../utils"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } const SESSION_MOCKS = new Set(); async function mock(url, filterOptions) { const NetworkInterception = this.isSauce ? _webdriver.default : _devtools.default; if (!this.isSauce) { await this.getPuppeteer(); } if (SESSION_MOCKS.size === 0 && !this.isSauce) { const [page] = await this.puppeteer.pages(); const client = await page.target().createCDPSession(); await client.send('Fetch.enable', { patterns: [{ requestStage: 'Response' }] }); client.on('Fetch.requestPaused', NetworkInterception.handleRequestInterception(client, SESSION_MOCKS)); } const browser = (0, _utils.getBrowserObject)(this); const networkInterception = new NetworkInterception(url, filterOptions, browser); SESSION_MOCKS.add(networkInterception); if (this.isSauce) { await networkInterception.init(); } return networkInterception; }