qunit-harness
Version:
A library for running qunit tests on a local machine and in the SauceLabs environment.
119 lines (97 loc) • 4.19 kB
JavaScript
;
var _createClass = require('babel-runtime/helpers/create-class').default;
var _classCallCheck = require('babel-runtime/helpers/class-call-check').default;
var _regeneratorRuntime = require('babel-runtime/regenerator').default;
exports.__esModule = true;
var _httpsRequest = require('./https-request');
var SaucelabsRequestAdapter = (function () {
function SaucelabsRequestAdapter(user, pass) {
_classCallCheck(this, SaucelabsRequestAdapter);
this.user = user;
this.pass = pass;
}
SaucelabsRequestAdapter.prototype._request = function _request(params, data) {
var result, statusCode, body;
return _regeneratorRuntime.async(function _request$(context$2$0) {
while (1) switch (context$2$0.prev = context$2$0.next) {
case 0:
context$2$0.next = 2;
return _regeneratorRuntime.awrap(_httpsRequest.httpsRequest(params, data));
case 2:
result = context$2$0.sent;
statusCode = result.statusCode;
body = result.body;
if (!(statusCode >= 200 && statusCode <= 299)) {
context$2$0.next = 7;
break;
}
return context$2$0.abrupt('return', body);
case 7:
throw ['Unexpected response from the Sauce Labs API.', params.method + ' ' + params.hostname, 'Response status: ' + statusCode, 'Body: ' + JSON.stringify(body)].join('\n');
case 8:
case 'end':
return context$2$0.stop();
}
}, null, this);
};
SaucelabsRequestAdapter.prototype.put = function put(url, data) {
var params;
return _regeneratorRuntime.async(function put$(context$2$0) {
while (1) switch (context$2$0.prev = context$2$0.next) {
case 0:
params = {
method: 'PUT',
hostname: 'api.us-west-1.saucelabs.com',
path: '/rest/' + url,
headers: { 'Content-Type': 'application/json' },
auth: this.user + ':' + this.pass
};
context$2$0.next = 3;
return _regeneratorRuntime.awrap(this._request(params, JSON.stringify(data)));
case 3:
return context$2$0.abrupt('return', context$2$0.sent);
case 4:
case 'end':
return context$2$0.stop();
}
}, null, this);
};
SaucelabsRequestAdapter.prototype.get = function get(url) {
var params, body;
return _regeneratorRuntime.async(function get$(context$2$0) {
while (1) switch (context$2$0.prev = context$2$0.next) {
case 0:
params = {
method: 'GET',
hostname: 'api.us-west-1.saucelabs.com',
path: '/rest/v1.2/users/' + this.user + '/' + url,
headers: { 'Content-Type': 'application/json' },
auth: this.user + ':' + this.pass
};
context$2$0.next = 3;
return _regeneratorRuntime.awrap(this._request(params));
case 3:
body = context$2$0.sent;
return context$2$0.abrupt('return', JSON.parse(body));
case 5:
case 'end':
return context$2$0.stop();
}
}, null, this);
};
_createClass(SaucelabsRequestAdapter, null, [{
key: 'URLS',
value: {
RUN: 'js-tests',
STATUS: 'js-tests/status',
STOP_JOB: function (jobId) {
return 'jobs/' + jobId + '/stop';
},
CONCURRENCY: 'concurrency'
},
enumerable: true
}]);
return SaucelabsRequestAdapter;
})();
exports.default = SaucelabsRequestAdapter;
module.exports = exports.default;