testplane
Version:
Tests framework based on mocha and wdio
55 lines • 2.84 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.runGeckoDriver = exports.installLatestGeckoDriver = exports.resolveLatestFirefoxVersion = exports.installFirefox = void 0;
const geckodriver_1 = require("geckodriver");
const get_port_1 = __importDefault(require("get-port"));
const wait_port_1 = __importDefault(require("wait-port"));
const browser_1 = require("./browser");
Object.defineProperty(exports, "installFirefox", { enumerable: true, get: function () { return browser_1.installFirefox; } });
Object.defineProperty(exports, "resolveLatestFirefoxVersion", { enumerable: true, get: function () { return browser_1.resolveLatestFirefoxVersion; } });
const driver_1 = require("./driver");
Object.defineProperty(exports, "installLatestGeckoDriver", { enumerable: true, get: function () { return driver_1.installLatestGeckoDriver; } });
const utils_1 = require("../../dev-server/utils");
const constants_1 = require("../constants");
const ubuntu_packages_1 = require("../ubuntu-packages");
const runtime_config_1 = __importDefault(require("../../config/runtime-config"));
const runGeckoDriver = async (firefoxVersion, { debug = false } = {}) => {
const [geckoDriverPath, randomPort, geckoDriverEnv] = await Promise.all([
(0, driver_1.installLatestGeckoDriver)(firefoxVersion),
(0, get_port_1.default)(),
(0, ubuntu_packages_1.isUbuntu)()
.then(isUbuntu => (isUbuntu ? (0, ubuntu_packages_1.getUbuntuLinkerEnv)() : null))
.then(extraEnv => (extraEnv ? { ...process.env, ...extraEnv } : process.env)),
]);
const runtimeConfig = runtime_config_1.default.getInstance();
const keepBrowserModeEnabled = runtimeConfig.keepBrowserMode?.enabled;
const geckoDriver = await (0, geckodriver_1.start)({
customGeckoDriverPath: geckoDriverPath,
port: randomPort,
log: debug ? "debug" : "fatal",
spawnOpts: {
windowsHide: true,
detached: keepBrowserModeEnabled || false,
env: geckoDriverEnv,
},
});
if (debug) {
(0, utils_1.pipeLogsWithPrefix)(geckoDriver, `[geckodriver@${firefoxVersion}] `);
}
const gridUrl = `http://127.0.0.1:${randomPort}`;
if (!keepBrowserModeEnabled) {
process.once("exit", () => geckoDriver.kill());
}
await (0, wait_port_1.default)({
port: randomPort,
output: "silent",
timeout: constants_1.DRIVER_WAIT_TIMEOUT,
interval: constants_1.DRIVER_WAIT_INTERVAL,
});
return { gridUrl, process: geckoDriver, port: randomPort, kill: () => geckoDriver.kill() };
};
exports.runGeckoDriver = runGeckoDriver;
//# sourceMappingURL=index.js.map