@testim/testim-cli
Version:
Command line interface for running Testing on you CI
71 lines (56 loc) • 5.66 kB
JavaScript
/**
*
* Create a new session. The server should attempt to create a session that most
* closely matches the desired and required capabilities. Required capabilities
* have higher priority than desired capabilities and must be set for the session
* to be created.
*
* @param {Object} [capabilities] An object describing the session's [desired capabilities](https://code.google.com/p/selenium/wiki/JsonWireProtocol#Desired_Capabilities).
*
* @see https://code.google.com/p/selenium/wiki/JsonWireProtocol#/session
* @type protocol
*
*/
;
var _interopRequireDefault = require('babel-runtime/helpers/interop-require-default')['default'];
Object.defineProperty(exports, '__esModule', {
value: true
});
var _utilsErrorHandler = require('../utils/ErrorHandler');
var _packageJson = require('../../package.json');
var _packageJson2 = _interopRequireDefault(_packageJson);
var _deepmerge = require('deepmerge');
var _deepmerge2 = _interopRequireDefault(_deepmerge);
var init = function init() {
var desiredCapabilities = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];
/*!
* check if session was already established
*/
if (this.requestHandler.sessionID) {
throw new _utilsErrorHandler.ProtocolError('Cannot init a new session, please end your current session first');
}
this.desiredCapabilities = (0, _deepmerge2['default'])(this.desiredCapabilities, desiredCapabilities);
if (desiredCapabilities.sessionId) {
this.sessionId = desiredCapabilities.sessionId;
}
/**
* report library identity to server
* @see https://groups.google.com/forum/#!topic/selenium-developers/Zj1ikTz632o
*/
this.desiredCapabilities = (0, _deepmerge2['default'])(this.desiredCapabilities, {
requestOrigins: {
url: _packageJson2['default'].homepage,
version: _packageJson2['default'].version,
name: _packageJson2['default'].name
}
});
return this.requestHandler.create({
path: '/session',
method: 'POST'
}, {
desiredCapabilities: this.desiredCapabilities
});
};
exports['default'] = init;
module.exports = exports['default'];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9wcm90b2NvbC9pbml0LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7aUNBYzhCLHVCQUF1Qjs7MkJBQ3JDLG9CQUFvQjs7Ozt5QkFDbEIsV0FBVzs7OztBQUU3QixJQUFJLElBQUksR0FBRyxTQUFQLElBQUksR0FBdUM7UUFBMUIsbUJBQW1CLHlEQUFHLEVBQUU7Ozs7O0FBSXpDLFFBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLEVBQUU7QUFDL0IsY0FBTSxxQ0FBa0Isa0VBQWtFLENBQUMsQ0FBQTtLQUM5Rjs7QUFFRCxRQUFJLENBQUMsbUJBQW1CLEdBQUcsNEJBQU0sSUFBSSxDQUFDLG1CQUFtQixFQUFFLG1CQUFtQixDQUFDLENBQUE7QUFDL0UsUUFBSSxtQkFBbUIsQ0FBQyxTQUFTLEVBQUU7QUFDL0IsWUFBSSxDQUFDLFNBQVMsR0FBRyxtQkFBbUIsQ0FBQyxTQUFTLENBQUE7S0FDakQ7Ozs7OztBQU1ELFFBQUksQ0FBQyxtQkFBbUIsR0FBRyw0QkFBTSxJQUFJLENBQUMsbUJBQW1CLEVBQUU7QUFDdkQsc0JBQWMsRUFBRTtBQUNaLGVBQUcsRUFBRSx5QkFBSSxRQUFRO0FBQ2pCLG1CQUFPLEVBQUUseUJBQUksT0FBTztBQUNwQixnQkFBSSxFQUFFLHlCQUFJLElBQUk7U0FDakI7S0FDSixDQUFDLENBQUE7O0FBRUYsV0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQztBQUM5QixZQUFJLEVBQUUsVUFBVTtBQUNoQixjQUFNLEVBQUUsTUFBTTtLQUNqQixFQUFFO0FBQ0MsMkJBQW1CLEVBQUUsSUFBSSxDQUFDLG1CQUFtQjtLQUNoRCxDQUFDLENBQUE7Q0FDTCxDQUFBOztxQkFFYyxJQUFJIiwiZmlsZSI6ImluaXQuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqXG4gKiBDcmVhdGUgYSBuZXcgc2Vzc2lvbi4gVGhlIHNlcnZlciBzaG91bGQgYXR0ZW1wdCB0byBjcmVhdGUgYSBzZXNzaW9uIHRoYXQgbW9zdFxuICogY2xvc2VseSBtYXRjaGVzIHRoZSBkZXNpcmVkIGFuZCByZXF1aXJlZCBjYXBhYmlsaXRpZXMuIFJlcXVpcmVkIGNhcGFiaWxpdGllc1xuICogaGF2ZSBoaWdoZXIgcHJpb3JpdHkgdGhhbiBkZXNpcmVkIGNhcGFiaWxpdGllcyBhbmQgbXVzdCBiZSBzZXQgZm9yIHRoZSBzZXNzaW9uXG4gKiB0byBiZSBjcmVhdGVkLlxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBbY2FwYWJpbGl0aWVzXSBBbiBvYmplY3QgZGVzY3JpYmluZyB0aGUgc2Vzc2lvbidzIFtkZXNpcmVkIGNhcGFiaWxpdGllc10oaHR0cHM6Ly9jb2RlLmdvb2dsZS5jb20vcC9zZWxlbml1bS93aWtpL0pzb25XaXJlUHJvdG9jb2wjRGVzaXJlZF9DYXBhYmlsaXRpZXMpLlxuICpcbiAqIEBzZWUgIGh0dHBzOi8vY29kZS5nb29nbGUuY29tL3Avc2VsZW5pdW0vd2lraS9Kc29uV2lyZVByb3RvY29sIy9zZXNzaW9uXG4gKiBAdHlwZSBwcm90b2NvbFxuICpcbiAqL1xuXG5pbXBvcnQgeyBQcm90b2NvbEVycm9yIH0gZnJvbSAnLi4vdXRpbHMvRXJyb3JIYW5kbGVyJ1xuaW1wb3J0IHBrZyBmcm9tICcuLi8uLi9wYWNrYWdlLmpzb24nXG5pbXBvcnQgbWVyZ2UgZnJvbSAnZGVlcG1lcmdlJ1xuXG5sZXQgaW5pdCA9IGZ1bmN0aW9uIChkZXNpcmVkQ2FwYWJpbGl0aWVzID0ge30pIHtcbiAgICAvKiFcbiAgICAgKiBjaGVjayBpZiBzZXNzaW9uIHdhcyBhbHJlYWR5IGVzdGFibGlzaGVkXG4gICAgICovXG4gICAgaWYgKHRoaXMucmVxdWVzdEhhbmRsZXIuc2Vzc2lvbklEKSB7XG4gICAgICAgIHRocm93IG5ldyBQcm90b2NvbEVycm9yKCdDYW5ub3QgaW5pdCBhIG5ldyBzZXNzaW9uLCBwbGVhc2UgZW5kIHlvdXIgY3VycmVudCBzZXNzaW9uIGZpcnN0JylcbiAgICB9XG5cbiAgICB0aGlzLmRlc2lyZWRDYXBhYmlsaXRpZXMgPSBtZXJnZSh0aGlzLmRlc2lyZWRDYXBhYmlsaXRpZXMsIGRlc2lyZWRDYXBhYmlsaXRpZXMpXG4gICAgaWYgKGRlc2lyZWRDYXBhYmlsaXRpZXMuc2Vzc2lvbklkKSB7XG4gICAgICAgIHRoaXMuc2Vzc2lvbklkID0gZGVzaXJlZENhcGFiaWxpdGllcy5zZXNzaW9uSWRcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiByZXBvcnQgbGlicmFyeSBpZGVudGl0eSB0byBzZXJ2ZXJcbiAgICAgKiBAc2VlIGh0dHBzOi8vZ3JvdXBzLmdvb2dsZS5jb20vZm9ydW0vIyF0b3BpYy9zZWxlbml1bS1kZXZlbG9wZXJzL1pqMWlrVHo2MzJvXG4gICAgICovXG4gICAgdGhpcy5kZXNpcmVkQ2FwYWJpbGl0aWVzID0gbWVyZ2UodGhpcy5kZXNpcmVkQ2FwYWJpbGl0aWVzLCB7XG4gICAgICAgIHJlcXVlc3RPcmlnaW5zOiB7XG4gICAgICAgICAgICB1cmw6IHBrZy5ob21lcGFnZSxcbiAgICAgICAgICAgIHZlcnNpb246IHBrZy52ZXJzaW9uLFxuICAgICAgICAgICAgbmFtZTogcGtnLm5hbWVcbiAgICAgICAgfVxuICAgIH0pXG5cbiAgICByZXR1cm4gdGhpcy5yZXF1ZXN0SGFuZGxlci5jcmVhdGUoe1xuICAgICAgICBwYXRoOiAnL3Nlc3Npb24nLFxuICAgICAgICBtZXRob2Q6ICdQT1NUJ1xuICAgIH0sIHtcbiAgICAgICAgZGVzaXJlZENhcGFiaWxpdGllczogdGhpcy5kZXNpcmVkQ2FwYWJpbGl0aWVzXG4gICAgfSlcbn1cblxuZXhwb3J0IGRlZmF1bHQgaW5pdFxuIl19