commit
e1f531d4e4
@ -0,0 +1,62 @@ |
||||
|
||||
const https = require('https') |
||||
|
||||
module.exports = function sauce (callback) { |
||||
const currentTest = this.client.currentTest |
||||
const username = this.client.options.username |
||||
const sessionId = this.client.capabilities['webdriver.remote.sessionid'] |
||||
const accessKey = this.client.options.accessKey |
||||
|
||||
if (!this.client.launch_url.match(/saucelabs/)) { |
||||
console.log('Not saucelabs ...') |
||||
return callback() |
||||
} |
||||
|
||||
if (!username || !accessKey || !sessionId) { |
||||
console.log(this.client) |
||||
console.log('No username, accessKey or sessionId') |
||||
return callback() |
||||
} |
||||
|
||||
const passed = currentTest.results.passed === currentTest.results.tests |
||||
|
||||
const data = JSON.stringify({passed}) |
||||
|
||||
const requestPath = `/rest/v1/${username}/jobs/${sessionId}` |
||||
|
||||
function responseCallback (res) { |
||||
res.setEncoding('utf8') |
||||
console.log('Response: ', res.statusCode, JSON.stringify(res.headers)) |
||||
res.on('data', function onData (chunk) { |
||||
console.log('BODY: ' + chunk) |
||||
}) |
||||
res.on('end', function onEnd () { |
||||
console.info('Finished updating saucelabs') |
||||
callback() |
||||
}) |
||||
} |
||||
|
||||
try { |
||||
console.log('Updating saucelabs', requestPath) |
||||
|
||||
const req = https.request({ |
||||
hostname: 'saucelabs.com', |
||||
path: requestPath, |
||||
method: 'PUT', |
||||
auth: `${username}:${accessKey}`, |
||||
headers: { |
||||
'Content-Type': 'application/json', |
||||
'Content-Length': data.length |
||||
} |
||||
}, responseCallback) |
||||
|
||||
req.on('error', function onError (e) { |
||||
console.log('problem with request: ' + e.message) |
||||
}) |
||||
req.write(data) |
||||
req.end() |
||||
} catch (error) { |
||||
console.log('Error', error) |
||||
callback() |
||||
} |
||||
} |
Loading…
Reference in new issue