UNPKG

@luminati-io/webdriverio8

Version:

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

60 lines 4.5 kB
import { capabilitiesEnvironmentDetector } from '@wdio/utils'; /** * create `browser` object with capabilities and environment flags before session is started * so that Mocha/Jasmine users can filter their specs based on flags or use capabilities in test titles */ export default class ProtocolStub { static async newSession(options) { const capabilities = emulateSessionCapabilities((options.capabilities || {})); const browser = { options, capabilities, requestedCapabilities: capabilities, customCommands: [], // internally used to transfer custom commands to the actual protocol instance overwrittenCommands: [], // internally used to transfer overwritten commands to the actual protocol instance commandList: [], ...capabilitiesEnvironmentDetector(capabilities, options._automationProtocol || 'webdriver') }; browser.addCommand = (...args) => browser.customCommands.push(args); browser.overwriteCommand = (...args) => browser.overwrittenCommands.push(args); return browser; } /** * added just in case user wants to somehow reload webdriver or devtools session * before it was started. */ static reloadSession() { throw new Error('Protocol Stub: Make sure to start webdriver or devtools session before reloading it.'); } static attachToSession(options, modifier) { if (options || !modifier) { throw new Error('You are trying to attach to a protocol stub, this should never occur, please file an issue.'); } /** * MultiRemote is needed */ return modifier({ commandList: [] }); } } /** * transform capabilities provided by user to look like * capabilities returned by WebDriver * @param {object} caps user defined capabilities * @return {object} */ function emulateSessionCapabilities(caps) { const capabilities = {}; // remove appium vendor prefix from capabilities Object.entries(caps).forEach(([key, value]) => { const newKey = key.replace('appium:', ''); capabilities[newKey] = value; }); // isChrome if (caps.browserName && caps.browserName.toLowerCase() === 'chrome') { capabilities.chrome = true; } return capabilities; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdG9jb2wtc3R1Yi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9wcm90b2NvbC1zdHViLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUc3RDs7O0dBR0c7QUFDSCxNQUFNLENBQUMsT0FBTyxPQUFPLFlBQVk7SUFDN0IsTUFBTSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUUsT0FBMEI7UUFDL0MsTUFBTSxZQUFZLEdBQUcsMEJBQTBCLENBQzNDLENBQUMsT0FBTyxDQUFDLFlBQVksSUFBSSxFQUFFLENBQWdELENBQzlFLENBQUE7UUFFRCxNQUFNLE9BQU8sR0FBUTtZQUNqQixPQUFPO1lBQ1AsWUFBWTtZQUNaLHFCQUFxQixFQUFFLFlBQVk7WUFDbkMsY0FBYyxFQUFFLEVBQUUsRUFBRSw4RUFBOEU7WUFDbEcsbUJBQW1CLEVBQUUsRUFBRSxFQUFFLG1GQUFtRjtZQUM1RyxXQUFXLEVBQUUsRUFBRTtZQUNmLEdBQUcsK0JBQStCLENBQUMsWUFBWSxFQUFHLE9BQWUsQ0FBQyxtQkFBbUIsSUFBSSxXQUFXLENBQUM7U0FDeEcsQ0FBQTtRQUVELE9BQU8sQ0FBQyxVQUFVLEdBQUcsQ0FBQyxHQUFHLElBQVMsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDeEUsT0FBTyxDQUFDLGdCQUFnQixHQUFHLENBQUMsR0FBRyxJQUFTLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDbkYsT0FBTyxPQUFPLENBQUE7SUFDbEIsQ0FBQztJQUVEOzs7T0FHRztJQUNILE1BQU0sQ0FBQyxhQUFhO1FBQ2hCLE1BQU0sSUFBSSxLQUFLLENBQUMsc0ZBQXNGLENBQUMsQ0FBQTtJQUMzRyxDQUFDO0lBRUQsTUFBTSxDQUFDLGVBQWUsQ0FBRSxPQUFjLEVBQUUsUUFBbUI7UUFDdkQsSUFBSSxPQUFPLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUN2QixNQUFNLElBQUksS0FBSyxDQUFDLDZGQUE2RixDQUFDLENBQUE7UUFDbEgsQ0FBQztRQUVEOztXQUVHO1FBQ0gsT0FBTyxRQUFRLENBQUM7WUFDWixXQUFXLEVBQUUsRUFBRTtTQUNsQixDQUFDLENBQUE7SUFDTixDQUFDO0NBQ0o7QUFFRDs7Ozs7R0FLRztBQUNILFNBQVMsMEJBQTBCLENBQUUsSUFBc0M7SUFDdkUsTUFBTSxZQUFZLEdBQXdCLEVBQUUsQ0FBQTtJQUU1QyxnREFBZ0Q7SUFDaEQsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFO1FBQzFDLE1BQU0sTUFBTSxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFBO1FBQ3pDLFlBQVksQ0FBQyxNQUFNLENBQUMsR0FBRyxLQUFLLENBQUE7SUFDaEMsQ0FBQyxDQUFDLENBQUE7SUFFRixXQUFXO0lBQ1gsSUFBSSxJQUFJLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxFQUFFLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDbEUsWUFBWSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUE7SUFDOUIsQ0FBQztJQUVELE9BQU8sWUFBWSxDQUFBO0FBQ3ZCLENBQUMifQ==