UNPKG

nodium

Version:

Pure nodejs selenium webdriver functional helpers

86 lines (70 loc) 2.81 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.postJobUpdate = postJobUpdate; exports.enableFastSelenium = enableFastSelenium; var _request = require('request'); var _request2 = _interopRequireDefault(_request); var _http = require('http'); var _http2 = _interopRequireDefault(_http); var _https = require('https'); var _https2 = _interopRequireDefault(_https); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function postJobUpdate(driver, user, pass, passed) { return driver.session_.then(sessionData => { return new Promise((resolve, reject) => { (0, _request2.default)({ uri: `https://www.browserstack.com/automate/sessions/${sessionData.id_}.json`, method: 'PUT', auth: { user, pass }, form: { status: passed ? 'completed' : 'error' } }, function (error, response, body) { if (error) { return reject(error); } (0, _request2.default)({ uri: `https://www.browserstack.com/automate/sessions/${sessionData.id_}.json`, auth: { user, pass }, json: true }, function (error, response, body) { if (error) { return reject(error); } return resolve(`Browserstack results available at ${body.automation_session.browser_url}`); }); }); }); }); } function enableFastSelenium() { var keepAliveTimeout = 30 * 1000; if (_http2.default.globalAgent && _http2.default.globalAgent.hasOwnProperty('keepAlive')) { _http2.default.globalAgent.keepAlive = true; _https2.default.globalAgent.keepAlive = true; _http2.default.globalAgent.keepAliveMsecs = keepAliveTimeout; _https2.default.globalAgent.keepAliveMsecs = keepAliveTimeout; } else { var agent = new _http2.default.Agent({ keepAlive: true, keepAliveMsecs: keepAliveTimeout }); var secureAgent = new _https2.default.Agent({ keepAlive: true, keepAliveMsecs: keepAliveTimeout }); var httpRequest = _http2.default.request; var httpsRequest = _https2.default.request; _http2.default.request = function (options, callback) { if (options.protocol == 'https:') { options['agent'] = secureAgent; return httpsRequest(options, callback); } else { options['agent'] = agent; return httpRequest(options, callback); } }; } }