UNPKG

@testim/testim-cli

Version:

Command line interface for running Testing on you CI

90 lines (75 loc) 6.66 kB
/** * * Protocol bindings for all session operations. In case you are looking for * `[POST] session` to initialise a session on the server, take a look at `/lib/protocol/init`. * * <example> :session.js // retrieve the capabilities of the specified session client.session(function(err,res) { ... }); // delete the session (equivalent to `end` action command) client.session('delete'); * </example> * * @param {String=} doWhat session operation (`GET`*|`delete`) *default * * @see https://code.google.com/p/selenium/wiki/JsonWireProtocol#/session/:sessionId * @type protocol * */ 'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var _utilsErrorHandler = require('../utils/ErrorHandler'); var session = function session(doWhat, sessionId) { var _this = this; if (doWhat === undefined) doWhat = 'GET'; /*! * parameter check */ if (typeof sessionId !== 'string') { /*! * if session was already closed return `undefined` * ToDo or maybe throw an error */ if (!this.requestHandler.sessionID) { return null; } sessionId = this.requestHandler.sessionID; } doWhat = doWhat.toUpperCase(); /*! * get session */ if (doWhat === 'GET') { return this.requestHandler.create({ path: '/session/' + sessionId, method: 'GET', requiresSession: false }); } /*! * delete session */ if (doWhat === 'DELETE') { this.emit('end', { sessionId: this.requestHandler.sessionID }); return this.requestHandler.create({ path: '/session/' + sessionId, method: 'DELETE', requiresSession: false }).then(function (res) { /*! * delete sessionID in RequestHandler */ _this.requestHandler.sessionID = null; return res; }); } throw new _utilsErrorHandler.ProtocolError('The session command need either a \'delete\' or \'get\'attribute to know what to do. example: client.session(\'get\').then(callback) to get the capabilities of the session.'); }; exports['default'] = session; module.exports = exports['default']; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9wcm90b2NvbC9zZXNzaW9uLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztpQ0FxQjhCLHVCQUF1Qjs7QUFFckQsSUFBSSxPQUFPLEdBQUcsU0FBVixPQUFPLENBQWEsTUFBTSxFQUFVLFNBQVMsRUFBRTs7O1FBQTNCLE1BQU0sZ0JBQU4sTUFBTSxHQUFHLEtBQUs7Ozs7O0FBSWxDLFFBQUksT0FBTyxTQUFTLEtBQUssUUFBUSxFQUFFOzs7OztBQUsvQixZQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLEVBQUU7QUFDaEMsbUJBQU8sSUFBSSxDQUFBO1NBQ2Q7O0FBRUQsaUJBQVMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQTtLQUM1Qzs7QUFFRCxVQUFNLEdBQUcsTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFBOzs7OztBQUs3QixRQUFJLE1BQU0sS0FBSyxLQUFLLEVBQUU7QUFDbEIsZUFBTyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQztBQUM5QixnQkFBSSxnQkFBYyxTQUFTLEFBQUU7QUFDN0Isa0JBQU0sRUFBRSxLQUFLO0FBQ2IsMkJBQWUsRUFBRSxLQUFLO1NBQ3pCLENBQUMsQ0FBQTtLQUNMOzs7OztBQUtELFFBQUksTUFBTSxLQUFLLFFBQVEsRUFBRTtBQUNyQixZQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRTtBQUNiLHFCQUFTLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTO1NBQzNDLENBQUMsQ0FBQTs7QUFFRixlQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDO0FBQzlCLGdCQUFJLEVBQUUsV0FBVyxHQUFHLFNBQVM7QUFDN0Isa0JBQU0sRUFBRSxRQUFRO0FBQ2hCLDJCQUFlLEVBQUUsS0FBSztTQUN6QixDQUFDLENBQUMsSUFBSSxDQUFDLFVBQUMsR0FBRyxFQUFLOzs7O0FBSWIsa0JBQUssY0FBYyxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUE7QUFDcEMsbUJBQU8sR0FBRyxDQUFBO1NBQ2IsQ0FBQyxDQUFBO0tBQ0w7O0FBRUQsVUFBTSxxQ0FBa0IsOEtBQThLLENBQUMsQ0FBQTtDQUMxTSxDQUFBOztxQkFFYyxPQUFPIiwiZmlsZSI6InNlc3Npb24uanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqXG4gKiBQcm90b2NvbCBiaW5kaW5ncyBmb3IgYWxsIHNlc3Npb24gb3BlcmF0aW9ucy4gSW4gY2FzZSB5b3UgYXJlIGxvb2tpbmcgZm9yXG4gKiBgW1BPU1RdIHNlc3Npb25gIHRvIGluaXRpYWxpc2UgYSBzZXNzaW9uIG9uIHRoZSBzZXJ2ZXIsIHRha2UgYSBsb29rIGF0IGAvbGliL3Byb3RvY29sL2luaXRgLlxuICpcbiAqIDxleGFtcGxlPlxuICAgIDpzZXNzaW9uLmpzXG4gICAgLy8gcmV0cmlldmUgdGhlIGNhcGFiaWxpdGllcyBvZiB0aGUgc3BlY2lmaWVkIHNlc3Npb25cbiAgICBjbGllbnQuc2Vzc2lvbihmdW5jdGlvbihlcnIscmVzKSB7IC4uLiB9KTtcblxuICAgIC8vIGRlbGV0ZSB0aGUgc2Vzc2lvbiAoZXF1aXZhbGVudCB0byBgZW5kYCBhY3Rpb24gY29tbWFuZClcbiAgICBjbGllbnQuc2Vzc2lvbignZGVsZXRlJyk7XG4gKiA8L2V4YW1wbGU+XG4gKlxuICogQHBhcmFtIHtTdHJpbmc9fSBkb1doYXQgIHNlc3Npb24gb3BlcmF0aW9uIChgR0VUYCp8YGRlbGV0ZWApICpkZWZhdWx0XG4gKlxuICogQHNlZSAgaHR0cHM6Ly9jb2RlLmdvb2dsZS5jb20vcC9zZWxlbml1bS93aWtpL0pzb25XaXJlUHJvdG9jb2wjL3Nlc3Npb24vOnNlc3Npb25JZFxuICogQHR5cGUgcHJvdG9jb2xcbiAqXG4gKi9cblxuaW1wb3J0IHsgUHJvdG9jb2xFcnJvciB9IGZyb20gJy4uL3V0aWxzL0Vycm9ySGFuZGxlcidcblxubGV0IHNlc3Npb24gPSBmdW5jdGlvbiAoZG9XaGF0ID0gJ0dFVCcsIHNlc3Npb25JZCkge1xuICAgIC8qIVxuICAgICAqIHBhcmFtZXRlciBjaGVja1xuICAgICAqL1xuICAgIGlmICh0eXBlb2Ygc2Vzc2lvbklkICE9PSAnc3RyaW5nJykge1xuICAgICAgICAvKiFcbiAgICAgICAgICogaWYgc2Vzc2lvbiB3YXMgYWxyZWFkeSBjbG9zZWQgcmV0dXJuIGB1bmRlZmluZWRgXG4gICAgICAgICAqIFRvRG8gb3IgbWF5YmUgdGhyb3cgYW4gZXJyb3JcbiAgICAgICAgICovXG4gICAgICAgIGlmICghdGhpcy5yZXF1ZXN0SGFuZGxlci5zZXNzaW9uSUQpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsXG4gICAgICAgIH1cblxuICAgICAgICBzZXNzaW9uSWQgPSB0aGlzLnJlcXVlc3RIYW5kbGVyLnNlc3Npb25JRFxuICAgIH1cblxuICAgIGRvV2hhdCA9IGRvV2hhdC50b1VwcGVyQ2FzZSgpXG5cbiAgICAvKiFcbiAgICAgKiBnZXQgc2Vzc2lvblxuICAgICAqL1xuICAgIGlmIChkb1doYXQgPT09ICdHRVQnKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnJlcXVlc3RIYW5kbGVyLmNyZWF0ZSh7XG4gICAgICAgICAgICBwYXRoOiBgL3Nlc3Npb24vJHtzZXNzaW9uSWR9YCxcbiAgICAgICAgICAgIG1ldGhvZDogJ0dFVCcsXG4gICAgICAgICAgICByZXF1aXJlc1Nlc3Npb246IGZhbHNlXG4gICAgICAgIH0pXG4gICAgfVxuXG4gICAgLyohXG4gICAgICogZGVsZXRlIHNlc3Npb25cbiAgICAgKi9cbiAgICBpZiAoZG9XaGF0ID09PSAnREVMRVRFJykge1xuICAgICAgICB0aGlzLmVtaXQoJ2VuZCcsIHtcbiAgICAgICAgICAgIHNlc3Npb25JZDogdGhpcy5yZXF1ZXN0SGFuZGxlci5zZXNzaW9uSURcbiAgICAgICAgfSlcblxuICAgICAgICByZXR1cm4gdGhpcy5yZXF1ZXN0SGFuZGxlci5jcmVhdGUoe1xuICAgICAgICAgICAgcGF0aDogJy9zZXNzaW9uLycgKyBzZXNzaW9uSWQsXG4gICAgICAgICAgICBtZXRob2Q6ICdERUxFVEUnLFxuICAgICAgICAgICAgcmVxdWlyZXNTZXNzaW9uOiBmYWxzZVxuICAgICAgICB9KS50aGVuKChyZXMpID0+IHtcbiAgICAgICAgICAgIC8qIVxuICAgICAgICAgICAgICogZGVsZXRlIHNlc3Npb25JRCBpbiBSZXF1ZXN0SGFuZGxlclxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICB0aGlzLnJlcXVlc3RIYW5kbGVyLnNlc3Npb25JRCA9IG51bGxcbiAgICAgICAgICAgIHJldHVybiByZXNcbiAgICAgICAgfSlcbiAgICB9XG5cbiAgICB0aHJvdyBuZXcgUHJvdG9jb2xFcnJvcignVGhlIHNlc3Npb24gY29tbWFuZCBuZWVkIGVpdGhlciBhIFxcJ2RlbGV0ZVxcJyBvciBcXCdnZXRcXCdhdHRyaWJ1dGUgdG8ga25vdyB3aGF0IHRvIGRvLiBleGFtcGxlOiBjbGllbnQuc2Vzc2lvbihcXCdnZXRcXCcpLnRoZW4oY2FsbGJhY2spIHRvIGdldCB0aGUgY2FwYWJpbGl0aWVzIG9mIHRoZSBzZXNzaW9uLicpXG59XG5cbmV4cG9ydCBkZWZhdWx0IHNlc3Npb25cbiJdfQ==