webdriverio
Version:
Next-gen browser and mobile automation test framework for Node.js
45 lines (33 loc) • 1.29 kB
JavaScript
;
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;
}