cypress-qatouch-reporter
Version:
121 lines (108 loc) • 3.07 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var axios = require('axios');
var QaTouch = /** @class */ (function () {
function QaTouch(options) {
this.options = options;
this.base = 'https://api.qatouch.com/api/v1/';
}
/**
* Form the url for api
*
* @param path
* @returns {string}
* @private
*/
QaTouch.prototype._url = function (path) {
return `${this.base}${path}`;
};
QaTouch.prototype.publish = function (results) {
let finalArray = this.addResultsForTestRun(results);
let endPoint = `testRunResults/status/multiple?project=${this.options.projectKey}&test_run=${this.options.testRunId}&result=${JSON.stringify(finalArray)}&comments=Status changed by cypress automation script.`;
return axios({
method: 'PATCH',
url: this._url(endPoint),
headers: {
"api-token": this.options.apiToken,
"domain": this.options.domain,
"Content-Type": "application/json"
},
})
.then(function (response) {
console.log(response);
})
.catch(function (error) {
return console.error(error);
});
};
/**
* Add results for the test run in qaTouch
*
* @param results
*/
QaTouch.prototype.addResultsForTestRun = function(results) {
let result = [];
results.forEach(function (value, item) {
result.push({
'case': value.case_id,
'status': value.status_id,
});
});
return result;
};
/**
* status config values
*
* @param status
* @returns {number}
*/
QaTouch.prototype.statusConfig = function(status) {
let statusId= 2;
switch (status) {
case 'Passed':
statusId= 1;
break;
case 'Untested':
statusId= 2;
break;
case 'Blocked':
statusId= 3;
break;
case 'Retest':
statusId= 4;
break;
case 'Failed':
statusId= 5;
break;
case 'Not Applicable':
statusId= 6;
break;
case 'In Progress':
statusId= 7;
break;
default:
statusId= 2
}
return statusId
};
/**
* Title to case ids for qaTouch
*
* @param title
* @returns {[]}
* @constructor
*/
QaTouch.prototype.TitleToCaseIds = function(title)
{
let caseIds = [];
let testCaseIdRegExp = /\bTR(\d+)\b/g;
let m;
while((m = testCaseIdRegExp.exec(title)) !== null) {
let caseId = parseInt(m[1]);
caseIds.push(caseId);
}
return caseIds;
};
return QaTouch;
}());
exports.QaTouch = QaTouch;