jest-qase-reporter 1.2.0 → 1.3.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +6 -1
- package/dist/index.js +146 -75
- package/dist/index.js.map +1 -1
- package/examples/package-lock.json +771 -7721
- package/examples/test/arith.test.js +57 -12
- package/package.json +2 -2
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Reporter, Test, TestResult } from '@jest/reporters';
|
|
2
2
|
interface QaseOptions {
|
|
3
3
|
apiToken: string;
|
|
4
|
+
basePath?: string;
|
|
4
5
|
projectCode: string;
|
|
5
6
|
runId?: string;
|
|
6
7
|
runPrefix?: string;
|
|
@@ -14,6 +15,7 @@ declare class QaseReporter implements Reporter {
|
|
|
14
15
|
private runId?;
|
|
15
16
|
private isDisabled;
|
|
16
17
|
private publishedResultsCount;
|
|
18
|
+
private preparedTestCases;
|
|
17
19
|
constructor(_: Record<string, unknown>, _options: QaseOptions);
|
|
18
20
|
onRunStart(): Promise<void>;
|
|
19
21
|
onTestResult(_test: Test, testResult: TestResult): Promise<void>;
|
|
@@ -23,9 +25,12 @@ declare class QaseReporter implements Reporter {
|
|
|
23
25
|
private getEnv;
|
|
24
26
|
private getCaseIds;
|
|
25
27
|
private logTestItem;
|
|
28
|
+
private createPreparedForPublishTestsArray;
|
|
29
|
+
private publishBulkTestResult;
|
|
26
30
|
private checkProject;
|
|
31
|
+
private createRunObject;
|
|
27
32
|
private createRun;
|
|
28
33
|
private checkRun;
|
|
29
|
-
private
|
|
34
|
+
private createResultCasesArray;
|
|
30
35
|
}
|
|
31
36
|
export = QaseReporter;
|
package/dist/index.js
CHANGED
|
@@ -3,6 +3,17 @@ var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cook
|
|
|
3
3
|
if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
|
|
4
4
|
return cooked;
|
|
5
5
|
};
|
|
6
|
+
var __assign = (this && this.__assign) || function () {
|
|
7
|
+
__assign = Object.assign || function(t) {
|
|
8
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
9
|
+
s = arguments[i];
|
|
10
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
11
|
+
t[p] = s[p];
|
|
12
|
+
}
|
|
13
|
+
return t;
|
|
14
|
+
};
|
|
15
|
+
return __assign.apply(this, arguments);
|
|
16
|
+
};
|
|
6
17
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
7
18
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
8
19
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -49,25 +60,28 @@ var __spreadArrays = (this && this.__spreadArrays) || function () {
|
|
|
49
60
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
50
61
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
51
62
|
};
|
|
52
|
-
var
|
|
63
|
+
var src_1 = require("qaseio/dist/src");
|
|
53
64
|
var qaseio_1 = require("qaseio");
|
|
54
65
|
var chalk_1 = __importDefault(require("chalk"));
|
|
55
66
|
var Envs;
|
|
56
67
|
(function (Envs) {
|
|
57
68
|
Envs["report"] = "QASE_REPORT";
|
|
58
69
|
Envs["apiToken"] = "QASE_API_TOKEN";
|
|
70
|
+
Envs["basePath"] = "QASE_API_BASE_URL";
|
|
71
|
+
Envs["projectCode"] = "QASE_PROJECT_CODE";
|
|
59
72
|
Envs["runId"] = "QASE_RUN_ID";
|
|
60
73
|
Envs["runName"] = "QASE_RUN_NAME";
|
|
61
74
|
Envs["runDescription"] = "QASE_RUN_DESCRIPTION";
|
|
62
75
|
Envs["runComplete"] = "QASE_RUN_COMPLETE";
|
|
63
76
|
Envs["environmentId"] = "QASE_ENVIRONMENT_ID";
|
|
77
|
+
Envs["rootSuite"] = "QASE_ROOT_SUITE_TITLE";
|
|
64
78
|
})(Envs || (Envs = {}));
|
|
65
79
|
var Statuses = {
|
|
66
|
-
passed:
|
|
67
|
-
failed:
|
|
68
|
-
skipped:
|
|
69
|
-
pending:
|
|
70
|
-
disabled:
|
|
80
|
+
passed: src_1.ResultCreateStatusEnum.PASSED,
|
|
81
|
+
failed: src_1.ResultCreateStatusEnum.FAILED,
|
|
82
|
+
skipped: src_1.ResultCreateStatusEnum.SKIPPED,
|
|
83
|
+
pending: src_1.ResultCreateStatusEnum.SKIPPED,
|
|
84
|
+
disabled: src_1.ResultCreateStatusEnum.BLOCKED,
|
|
71
85
|
};
|
|
72
86
|
var alwaysUndefined = function () { return undefined; };
|
|
73
87
|
var QaseReporter = /** @class */ (function () {
|
|
@@ -75,9 +89,11 @@ var QaseReporter = /** @class */ (function () {
|
|
|
75
89
|
this.isDisabled = false;
|
|
76
90
|
this.publishedResultsCount = 0;
|
|
77
91
|
this.options = _options;
|
|
92
|
+
this.options.projectCode = _options.projectCode || this.getEnv(Envs.projectCode) || '';
|
|
78
93
|
this.options.runComplete = !!this.getEnv(Envs.runComplete) || this.options.runComplete;
|
|
79
|
-
this.api = new qaseio_1.QaseApi(this.getEnv(Envs.apiToken) || this.options.apiToken || '');
|
|
94
|
+
this.api = new qaseio_1.QaseApi(this.getEnv(Envs.apiToken) || this.options.apiToken || '', this.getEnv(Envs.basePath) || this.options.basePath);
|
|
80
95
|
this.log(chalk_1.default(templateObject_1 || (templateObject_1 = __makeTemplateObject(["{yellow Current PID: ", "}"], ["{yellow Current PID: ", "}"])), process.pid));
|
|
96
|
+
this.preparedTestCases = [];
|
|
81
97
|
if (!this.getEnv(Envs.report)) {
|
|
82
98
|
this.log(chalk_1.default(templateObject_2 || (templateObject_2 = __makeTemplateObject(["{yellow QASE_REPORT env variable is not set. Reporting to qase.io is disabled.}"], ["{yellow QASE_REPORT env variable is not set. Reporting to qase.io is disabled.}"]))));
|
|
83
99
|
this.isDisabled = true;
|
|
@@ -116,8 +132,9 @@ var QaseReporter = /** @class */ (function () {
|
|
|
116
132
|
}
|
|
117
133
|
else {
|
|
118
134
|
return [2 /*return*/, this.createRun(this.getEnv(Envs.runName), this.getEnv(Envs.runDescription), function (created) {
|
|
135
|
+
var _a;
|
|
119
136
|
if (created) {
|
|
120
|
-
_this.runId = created.id;
|
|
137
|
+
_this.runId = (_a = created.result) === null || _a === void 0 ? void 0 : _a.id;
|
|
121
138
|
process.env.QASE_RUN_ID = _this.runId.toString();
|
|
122
139
|
_this.log(chalk_1.default(templateObject_7 || (templateObject_7 = __makeTemplateObject(["{green Using run ", " to publish test results}"], ["{green Using run ", " to publish test results}"])), _this.runId));
|
|
123
140
|
}
|
|
@@ -135,12 +152,18 @@ var QaseReporter = /** @class */ (function () {
|
|
|
135
152
|
};
|
|
136
153
|
QaseReporter.prototype.onTestResult = function (_test, testResult) {
|
|
137
154
|
return __awaiter(this, void 0, void 0, function () {
|
|
138
|
-
var _this = this;
|
|
139
155
|
return __generator(this, function (_a) {
|
|
140
|
-
|
|
141
|
-
|
|
156
|
+
switch (_a.label) {
|
|
157
|
+
case 0:
|
|
158
|
+
if (this.isDisabled) {
|
|
159
|
+
return [2 /*return*/];
|
|
160
|
+
}
|
|
161
|
+
this.preparedTestCases = this.createPreparedForPublishTestsArray(testResult.testResults);
|
|
162
|
+
return [4 /*yield*/, this.publishBulkTestResult().then(alwaysUndefined)];
|
|
163
|
+
case 1:
|
|
164
|
+
_a.sent();
|
|
165
|
+
return [2 /*return*/];
|
|
142
166
|
}
|
|
143
|
-
return [2 /*return*/, Promise.all(testResult.testResults.map(function (value) { return _this.publishCaseResult(value); })).then(alwaysUndefined)];
|
|
144
167
|
});
|
|
145
168
|
});
|
|
146
169
|
};
|
|
@@ -163,10 +186,8 @@ var QaseReporter = /** @class */ (function () {
|
|
|
163
186
|
_a.label = 1;
|
|
164
187
|
case 1:
|
|
165
188
|
_a.trys.push([1, 3, , 4]);
|
|
166
|
-
|
|
167
|
-
return [4 /*yield*/, this.api.runs.complete(this.options.projectCode, this.runId)];
|
|
189
|
+
return [4 /*yield*/, this.api.runs.completeRun(this.options.projectCode, Number(this.runId))];
|
|
168
190
|
case 2:
|
|
169
|
-
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
170
191
|
_a.sent();
|
|
171
192
|
this.log(chalk_1.default(templateObject_9 || (templateObject_9 = __makeTemplateObject(["{green Run ", " completed}"], ["{green Run ", " completed}"])), this.runId));
|
|
172
193
|
return [3 /*break*/, 4];
|
|
@@ -214,35 +235,101 @@ var QaseReporter = /** @class */ (function () {
|
|
|
214
235
|
this.log(map[test.status]);
|
|
215
236
|
}
|
|
216
237
|
};
|
|
217
|
-
QaseReporter.prototype.
|
|
238
|
+
QaseReporter.prototype.createPreparedForPublishTestsArray = function (testResults) {
|
|
218
239
|
var _this = this;
|
|
219
|
-
|
|
220
|
-
.
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
240
|
+
var transformedMap = testResults.map(function (result) {
|
|
241
|
+
_this.logTestItem(result);
|
|
242
|
+
var item = {
|
|
243
|
+
path: result.ancestorTitles.join('\t'),
|
|
244
|
+
result: result.status,
|
|
245
|
+
duration: result.duration,
|
|
246
|
+
status: result.status,
|
|
247
|
+
title: result.title,
|
|
248
|
+
failureMessages: result.failureMessages,
|
|
249
|
+
};
|
|
250
|
+
var caseIds = _this.getCaseIds(result);
|
|
251
|
+
if (caseIds) {
|
|
252
|
+
item.caseIds = caseIds;
|
|
253
|
+
}
|
|
254
|
+
return item;
|
|
224
255
|
});
|
|
256
|
+
return transformedMap;
|
|
257
|
+
};
|
|
258
|
+
QaseReporter.prototype.publishBulkTestResult = function () {
|
|
259
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
260
|
+
var body, res, error_1;
|
|
261
|
+
return __generator(this, function (_a) {
|
|
262
|
+
switch (_a.label) {
|
|
263
|
+
case 0:
|
|
264
|
+
_a.trys.push([0, 2, , 3]);
|
|
265
|
+
body = {
|
|
266
|
+
results: this.createResultCasesArray(),
|
|
267
|
+
};
|
|
268
|
+
return [4 /*yield*/, this.api.results.createResultBulk(this.options.projectCode, Number(this.runId), body)];
|
|
269
|
+
case 1:
|
|
270
|
+
res = _a.sent();
|
|
271
|
+
if (res.status === 200) {
|
|
272
|
+
this.publishedResultsCount++;
|
|
273
|
+
}
|
|
274
|
+
return [3 /*break*/, 3];
|
|
275
|
+
case 2:
|
|
276
|
+
error_1 = _a.sent();
|
|
277
|
+
this.log(JSON.stringify(error_1));
|
|
278
|
+
return [3 /*break*/, 3];
|
|
279
|
+
case 3: return [2 /*return*/];
|
|
280
|
+
}
|
|
281
|
+
});
|
|
282
|
+
});
|
|
283
|
+
};
|
|
284
|
+
QaseReporter.prototype.checkProject = function (projectCode, cb) {
|
|
285
|
+
var _a;
|
|
286
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
287
|
+
var resp, err_2;
|
|
288
|
+
return __generator(this, function (_b) {
|
|
289
|
+
switch (_b.label) {
|
|
290
|
+
case 0:
|
|
291
|
+
_b.trys.push([0, 3, , 4]);
|
|
292
|
+
return [4 /*yield*/, this.api.projects.getProject(projectCode)];
|
|
293
|
+
case 1:
|
|
294
|
+
resp = _b.sent();
|
|
295
|
+
return [4 /*yield*/, cb(Boolean((_a = resp.data.result) === null || _a === void 0 ? void 0 : _a.code))];
|
|
296
|
+
case 2:
|
|
297
|
+
_b.sent();
|
|
298
|
+
return [3 /*break*/, 4];
|
|
299
|
+
case 3:
|
|
300
|
+
err_2 = _b.sent();
|
|
301
|
+
this.log(err_2);
|
|
302
|
+
this.isDisabled = true;
|
|
303
|
+
return [3 /*break*/, 4];
|
|
304
|
+
case 4: return [2 /*return*/];
|
|
305
|
+
}
|
|
306
|
+
});
|
|
307
|
+
});
|
|
308
|
+
};
|
|
309
|
+
QaseReporter.prototype.createRunObject = function (name, cases, args) {
|
|
310
|
+
return __assign({ title: name, cases: cases }, args);
|
|
225
311
|
};
|
|
226
312
|
QaseReporter.prototype.createRun = function (name, description, cb) {
|
|
227
313
|
return __awaiter(this, void 0, void 0, function () {
|
|
228
|
-
var environmentId, res,
|
|
314
|
+
var environmentId, runObject, res, err_3;
|
|
229
315
|
return __generator(this, function (_a) {
|
|
230
316
|
switch (_a.label) {
|
|
231
317
|
case 0:
|
|
232
318
|
_a.trys.push([0, 2, , 3]);
|
|
233
319
|
environmentId = Number.parseInt(this.getEnv(Envs.environmentId), 10) || this.options.environmentId;
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
320
|
+
runObject = this.createRunObject(name || "Automated run " + new Date().toISOString(), [], {
|
|
321
|
+
description: description || 'Jest automated run',
|
|
322
|
+
environment_id: environmentId,
|
|
323
|
+
is_autotest: true,
|
|
324
|
+
});
|
|
325
|
+
return [4 /*yield*/, this.api.runs.createRun(this.options.projectCode, runObject)];
|
|
239
326
|
case 1:
|
|
240
327
|
res = _a.sent();
|
|
241
328
|
cb(res.data);
|
|
242
329
|
return [3 /*break*/, 3];
|
|
243
330
|
case 2:
|
|
244
|
-
|
|
245
|
-
this.log("Error on creating run " +
|
|
331
|
+
err_3 = _a.sent();
|
|
332
|
+
this.log("Error on creating run " + err_3);
|
|
246
333
|
this.isDisabled = true;
|
|
247
334
|
return [3 /*break*/, 3];
|
|
248
335
|
case 3: return [2 /*return*/];
|
|
@@ -258,8 +345,12 @@ var QaseReporter = /** @class */ (function () {
|
|
|
258
345
|
cb(false);
|
|
259
346
|
return [2 /*return*/];
|
|
260
347
|
}
|
|
261
|
-
return [2 /*return*/, this.api.runs.
|
|
262
|
-
.then(
|
|
348
|
+
return [2 /*return*/, this.api.runs.getRun(this.options.projectCode, Number(runId))
|
|
349
|
+
.then(function (resp) {
|
|
350
|
+
var _a, _b;
|
|
351
|
+
_this.log("Get run result on checking run " + ((_a = resp.data.result) === null || _a === void 0 ? void 0 : _a.id));
|
|
352
|
+
cb(Boolean((_b = resp.data.result) === null || _b === void 0 ? void 0 : _b.id));
|
|
353
|
+
})
|
|
263
354
|
.catch(function (err) {
|
|
264
355
|
_this.log("Error on checking run " + err);
|
|
265
356
|
_this.isDisabled = true;
|
|
@@ -267,54 +358,34 @@ var QaseReporter = /** @class */ (function () {
|
|
|
267
358
|
});
|
|
268
359
|
});
|
|
269
360
|
};
|
|
270
|
-
QaseReporter.prototype.
|
|
271
|
-
return
|
|
272
|
-
var
|
|
273
|
-
var
|
|
274
|
-
|
|
275
|
-
this.logTestItem(test);
|
|
276
|
-
caseIds = this.getCaseIds(test);
|
|
277
|
-
if (caseIds.length === 0) {
|
|
278
|
-
// TODO: autocreate case for result
|
|
279
|
-
return [2 /*return*/];
|
|
280
|
-
}
|
|
281
|
-
return [2 /*return*/, Promise.all(caseIds.map(function (caseId) { return __awaiter(_this, void 0, void 0, function () {
|
|
282
|
-
var add, res, err_3;
|
|
283
|
-
return __generator(this, function (_a) {
|
|
284
|
-
switch (_a.label) {
|
|
285
|
-
case 0:
|
|
286
|
-
add = caseIds.length > 1 ? chalk_1.default(templateObject_16 || (templateObject_16 = __makeTemplateObject([" {white For case ", "}"], [" {white For case ", "}"])), caseId) : '';
|
|
287
|
-
this.log(chalk_1.default(templateObject_17 || (templateObject_17 = __makeTemplateObject(["{gray Start publishing: ", "}", ""], ["{gray Start publishing: ", "}", ""])), test.title, add));
|
|
288
|
-
test.failureMessages = test.failureMessages.map(function (value) { return value.replace(/\u001b\[.*?m/g, ''); });
|
|
289
|
-
_a.label = 1;
|
|
290
|
-
case 1:
|
|
291
|
-
_a.trys.push([1, 3, , 4]);
|
|
292
|
-
return [4 /*yield*/, this.api.results.create(this.options.projectCode,
|
|
293
|
-
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
294
|
-
this.runId, new models_1.ResultCreate(caseId, Statuses[test.status], {
|
|
295
|
-
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
296
|
-
time: test.duration,
|
|
297
|
-
stacktrace: test.failureMessages.join('\n'),
|
|
298
|
-
comment: test.failureMessages.length > 0 ? test.failureMessages.map(function (value) { return value.split('\n')[0]; }).join('\n') : undefined,
|
|
299
|
-
}))];
|
|
300
|
-
case 2:
|
|
301
|
-
res = _a.sent();
|
|
302
|
-
this.publishedResultsCount++;
|
|
303
|
-
this.log(chalk_1.default(templateObject_18 || (templateObject_18 = __makeTemplateObject(["{gray Result published: ", " ", "}", ""], ["{gray Result published: ", " ", "}", ""])), test.title, res.data.hash, add));
|
|
304
|
-
return [3 /*break*/, 4];
|
|
305
|
-
case 3:
|
|
306
|
-
err_3 = _a.sent();
|
|
307
|
-
this.log(err_3);
|
|
308
|
-
return [3 /*break*/, 4];
|
|
309
|
-
case 4: return [2 /*return*/];
|
|
310
|
-
}
|
|
311
|
-
});
|
|
312
|
-
}); })).then(alwaysUndefined)];
|
|
361
|
+
QaseReporter.prototype.createResultCasesArray = function () {
|
|
362
|
+
return this.preparedTestCases.map(function (elem) {
|
|
363
|
+
var _a;
|
|
364
|
+
var failureMessages = elem.failureMessages.map(function (value) {
|
|
365
|
+
return value.replace(/\u001b\[.*?m/g, '');
|
|
313
366
|
});
|
|
367
|
+
var caseObject = {
|
|
368
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
369
|
+
status: Statuses[elem.status] || Statuses.failed,
|
|
370
|
+
time_ms: Number(elem.duration),
|
|
371
|
+
stacktrace: failureMessages.join('\n'),
|
|
372
|
+
comment: failureMessages.length > 0 ? failureMessages.map(function (value) { return value.split('\n')[0]; }).join('\n') : undefined,
|
|
373
|
+
};
|
|
374
|
+
// Verifies that the user defined the ID through the use of the 'qase' wrapper;
|
|
375
|
+
if (elem.caseIds && ((_a = elem.caseIds) === null || _a === void 0 ? void 0 : _a.length) > 0) {
|
|
376
|
+
caseObject.case_id = elem.caseIds[0];
|
|
377
|
+
}
|
|
378
|
+
else {
|
|
379
|
+
caseObject.case = {
|
|
380
|
+
title: elem.title,
|
|
381
|
+
suite_title: elem.path,
|
|
382
|
+
};
|
|
383
|
+
}
|
|
384
|
+
return caseObject;
|
|
314
385
|
});
|
|
315
386
|
};
|
|
316
387
|
return QaseReporter;
|
|
317
388
|
}());
|
|
318
|
-
var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5, templateObject_6, templateObject_7, templateObject_8, templateObject_9, templateObject_10, templateObject_11, templateObject_12, templateObject_13, templateObject_14, templateObject_15
|
|
389
|
+
var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5, templateObject_6, templateObject_7, templateObject_8, templateObject_9, templateObject_10, templateObject_11, templateObject_12, templateObject_13, templateObject_14, templateObject_15;
|
|
319
390
|
module.exports = QaseReporter;
|
|
320
391
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|