UNPKG

testplane

Version:

Tests framework based on mocha and wdio

84 lines 3.25 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.launchBrowser = void 0; const config_1 = require("../config"); const new_browser_1 = require("./new-browser"); const existing_browser_1 = require("./existing-browser"); const calibrator_1 = require("./calibrator"); const events_1 = require("../events"); const types_1 = require("./types"); const browser_1 = require("../utils/browser"); const config_2 = require("../constants/config"); const webdriver_pool_1 = require("../browser-pool/webdriver-pool"); const webdriverPool = new webdriver_pool_1.WebdriverPool(); async function launchBrowser(options = {}) { const desiredCapabilities = options.desiredCapabilities || {}; const browserName = desiredCapabilities.browserName || types_1.BrowserName.CHROME; const normalizedBrowserName = (0, browser_1.getNormalizedBrowserName)(browserName); if (!normalizedBrowserName) { throw new Error([ `Running browser "${browserName}" is unsupported`, `Supported browsers: "chrome", "firefox", "safari", "edge"`, ].join("\n")); } const browserConfig = { desiredCapabilities: { browserName, ...desiredCapabilities, }, gridUrl: options.gridUrl || config_2.LOCAL_GRID_URL, baseUrl: options.baseUrl, headless: options.headless !== undefined ? options.headless : true, pageLoadTimeout: options.pageLoadTimeout, httpTimeout: options.httpTimeout, waitTimeout: options.waitTimeout, waitInterval: options.waitInterval, automationProtocol: options.automationProtocol, windowSize: options.windowSize, orientation: options.orientation, headers: options.headers, strictSSL: options.strictSSL, user: options.user, key: options.key, prepareBrowser: options.prepareBrowser, }; const config = new config_1.Config({ browsers: { [browserName]: browserConfig, }, }); if (!process.env.WDIO_LOG_LEVEL) { process.env.WDIO_LOG_LEVEL = config.system.debug ? "trace" : "error"; } const emitter = new events_1.AsyncEmitter(); const newBrowser = new new_browser_1.NewBrowser(config, { id: browserName, version: desiredCapabilities.browserVersion, emitter, wdPool: webdriverPool, }); await newBrowser.init(); const existingBrowser = new existing_browser_1.ExistingBrowser(config, { id: browserName, version: desiredCapabilities.browserVersion, emitter, state: {}, }); const calibrator = new calibrator_1.Calibrator(); const session = newBrowser.publicAPI; await existingBrowser.init({ sessionId: session.sessionId, sessionCaps: session.capabilities, sessionOpts: { capabilities: session.capabilities, ...session.options, }, }, calibrator); existingBrowser.publicAPI.overwriteCommand("deleteSession", async function () { await existingBrowser.quit(); await newBrowser.kill(); }); return existingBrowser.publicAPI; } exports.launchBrowser = launchBrowser; //# sourceMappingURL=standalone.js.map