nodium
Version:
Pure nodejs selenium webdriver functional helpers
86 lines (70 loc) • 2.81 kB
JavaScript
;
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);
}
};
}
}