wdio-browserstack-service
Version:
WebdriverIO service for better Browserstack integration
55 lines (46 loc) • 1.46 kB
JavaScript
var Browserstack = require('browserstack-local');
var BrowserstackLauncherService = function BrowserstackLauncherService () {};
BrowserstackLauncherService.prototype.onPrepare = function onPrepare (config, capabilities) {
var this$1 = this;
if (!config.browserstackLocal) {
return;
}
var opts = Object.assign({}, {key: config.key,
forcelocal: true,
onlyAutomate: true},
config.browserstackOpts);
this.browserstackLocal = new Browserstack.Local();
if (Array.isArray(capabilities)) {
capabilities.forEach(function (capability) {
capability['browserstack.local'] = true;
});
} else if (typeof capabilities === 'object') {
capabilities['browserstack.local'] = true;
}
return new Promise(function (resolve, reject) {
this$1.browserstackLocal.start(opts, function (err) {
if (err) {
return reject(err);
}
resolve();
});
});
};
BrowserstackLauncherService.prototype.onComplete = function onComplete (exitCode, config) {
var this$1 = this;
if (!this.browserstackLocal || !this.browserstackLocal.isRunning()) {
return;
}
if (config.browserstackLocalForcedStop) {
return process.kill(this.browserstackLocal.pid);
}
return new Promise(function (resolve, reject) {
this$1.browserstackLocal.stop(function (err) {
if (err) {
return reject(err);
}
resolve();
});
});
};
module.exports = BrowserstackLauncherService;