UNPKG

@fpjs-incubator/broyster

Version:
57 lines (56 loc) 2.96 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.makeBrowserStackSessionFactory = exports.BrowserStackSessionFactory = void 0; const tslib_1 = require("tslib"); const browserstack_capabilities_factory_1 = require("./browserstack_capabilities_factory"); const options_builder_1 = require("./options_builder"); const webdriver_factory_1 = require("./webdriver_factory"); class BrowserStackSessionFactory { constructor(config) { var _a; this._project = config.project; this._build = config.build; this._idleTimeout = (_a = config.idleTimeout) !== null && _a !== void 0 ? _a : 60000; this._capsFactory = config.capabilitiesFactory; this._localIdentifier = config.localIdentifier; } createBrowser(browser, deviceName, id, log) { var _a; return tslib_1.__awaiter(this, void 0, void 0, function* () { log.debug('creating session'); try { const caps = this._capsFactory.create(browser.browserName, this._build, id, this._project, deviceName, browser.platform, this._idleTimeout, browser.osVersion, browser.browserVersion, this._localIdentifier); if (((_a = browser.browserName) === null || _a === void 0 ? void 0 : _a.toLowerCase().includes('safari')) && browser.flags) { caps.safariOptions = options_builder_1.OptionsBuilder.createSafariArguments(browser.flags); } log.debug('created capabilities: ' + JSON.stringify(caps)); const opts = options_builder_1.OptionsBuilder.create(browser.browserName, browser.flags); log.debug('created options: ' + JSON.stringify(opts)); if (browser.firefoxCapabilities) { log.debug('using firefox capabilities: ' + browser.firefoxCapabilities); } const webdriver = yield webdriver_factory_1.WebDriverFactory.createFromOptions(opts, caps, browser.firefoxCapabilities); log.debug('session created successfully'); return webdriver; } catch (error) { log.debug('session creation failed'); throw error; } }); } } exports.BrowserStackSessionFactory = BrowserStackSessionFactory; function makeBrowserStackSessionFactory(config, browserStackCredentials, localIdentifier) { if (!config.browserStack) { throw new Error('BrowserStack options are not set'); } return new BrowserStackSessionFactory({ capabilitiesFactory: new browserstack_capabilities_factory_1.BrowserStackCapabilitiesFactory(browserStackCredentials, true), project: config.browserStack.project, build: config.browserStack.build.toString(), idleTimeout: config.browserStack.idleTimeout, localIdentifier, }); } exports.makeBrowserStackSessionFactory = makeBrowserStackSessionFactory;