UNPKG

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
'use strict'; 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;