UNPKG

testplane

Version:

Tests framework based on mocha and wdio

63 lines 2.63 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.attachToBrowser = void 0; const config_1 = require("../../config"); 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 fs_extra_1 = __importDefault(require("fs-extra")); const globalFilesToRemove_1 = require("../../globalFilesToRemove"); async function attachToBrowser(session) { const browserName = session.sessionCaps?.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, }, }; const filesToRemove = []; 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(); emitter.on(events_1.MasterEvents.ADD_FILE_TO_REMOVE, (path) => { filesToRemove.push(path); }); const existingBrowser = new existing_browser_1.ExistingBrowser(config, { id: browserName, version: session.sessionCaps?.browserVersion, emitter, state: {}, }); const calibrator = new calibrator_1.Calibrator(); await existingBrowser.init(session, calibrator); existingBrowser.publicAPI.overwriteCommand("deleteSession", async (originalCommand) => { await originalCommand({ shutdownDriver: true }); // force kill driver process by pid, because { shutdownDriver: true } in prev command doesn't work :( if (session.driverPid) { process.kill(session.driverPid, 9); } if (filesToRemove.length > 0 && !(0, globalFilesToRemove_1.hasGlobalFilesToRemove)()) { await Promise.all(filesToRemove.map(path => fs_extra_1.default.remove(path))); } }); return existingBrowser.publicAPI; } exports.attachToBrowser = attachToBrowser; //# sourceMappingURL=attachToBrowser.js.map