newman-reporter-qase 1.0.5 → 1.0.6-alpha.2

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/README.md CHANGED
@@ -5,12 +5,20 @@
5
5
  ## How to integrate
6
6
 
7
7
  ```bash
8
- npm install -g newman-reporter-qase
8
+ npm install newman-reporter-qase
9
9
  ```
10
10
 
11
11
  ## Example of usage
12
12
 
13
13
  ### Define in tests
14
+
15
+ The Newman reporter has the ability to auto-generate test cases
16
+ and suites from your test data.
17
+
18
+ But if necessary, you can independently register the ID of already
19
+ existing test cases from TMS before the executing tests.
20
+ Example:
21
+
14
22
  ```js
15
23
  //qase: 10
16
24
  // Qase: 1, 2, 3
@@ -19,27 +27,48 @@ pm.test('expect response be 200', function () {
19
27
  pm.response.to.be.info
20
28
  })
21
29
  ```
22
-
23
- ### From CLI:
24
- ```bash
30
+ You should also have an active item in the project settings at
31
+ ```
32
+ https://app.qase.io/project/QASE_PROJECT_CODE/settings/options
33
+ ```
34
+ options in the `Test Runs` block:
35
+ ```
36
+ Auto create test cases
37
+ ```
38
+ and
39
+ ```
40
+ Allow submitting results in bulk
41
+ ```
42
+ ### Execute rom CLI:
43
+ ```
25
44
  QASE_RUN_ID=34 # Specify Run ID using ENV
26
45
  newman run \
27
46
  -r qase \ # Enable Qase logger
28
47
  --reporter-qase-logging \ # Use reporter logger (like debug)
29
- --reporter-qase-projectCode PRJCODE \ # Specify Project Code
30
- --reporter-qase-apiToken <api token> \ # Specify API token
48
+ --reporter-qase-projectCode project_code \ # Specify Project Code
49
+ --reporter-qase-apiToken api_token \ # Specify API token
31
50
  --reporter-qase-runId 34 \ # Specify Run ID using CLI parameters
32
- --reporter-qase-runName "..." \ # Specify Run name using CLI parameters
33
- --reporter-qase-runDescription "..." \ # Specify Run description using CLI parameters
51
+ --reporter-qase-basePath https://api.qase.io/v1 \ # URL Qase.io
52
+ --reporter-qase-runName 'API test Execution' \ # Specify Run name using CLI parameters
53
+ --reporter-qase-runDescription 'Check API consistency' \ # Specify Run description using CLI parameters
54
+ --reporter-qase-rootSuiteTitle 'Newman tests' \ # A parent suite for your autocreated tests
34
55
  -x # WA for issue https://github.com/postmanlabs/newman/issues/2148#issuecomment-665229759
35
56
  ```
36
57
 
37
- ![Output of run](example/screenshots/screenshot.png)​
58
+ <p align="center">
59
+ <img width="65%" src="./examples/screenshots/screenshot.png">
60
+ </p>
61
+
38
62
  A test run will be performed and available at:
63
+
39
64
  ```
40
65
  https://app.qase.io/run/QASE_PROJECT_CODE
41
66
  ```
42
67
 
68
+ <p align="center">
69
+ <img src="./examples/screenshots/demo.gif">
70
+ </p>
71
+
43
72
  <!-- references -->
44
73
 
45
74
  [auth]: https://developers.qase.io/#authentication
package/dist/index.d.ts CHANGED
@@ -3,31 +3,37 @@ import { EventEmitter } from 'events';
3
3
  import { NewmanRunOptions } from 'newman';
4
4
  interface QaseOptions {
5
5
  apiToken: string;
6
+ basePath?: string;
7
+ rootSuiteTitle?: string;
6
8
  projectCode: string;
7
9
  runId?: string;
10
+ runPrefix?: string;
8
11
  runName?: string;
9
12
  runDescription?: string;
10
13
  logging?: boolean;
14
+ runComplete?: boolean;
15
+ environmentId?: number;
11
16
  }
12
17
  declare class NewmanQaseReporter {
13
18
  private api;
14
19
  private prePending;
15
- private pending;
16
- private readonly results;
17
20
  private options;
18
21
  private collectionOptions;
19
22
  private runId?;
20
- private readonly runIdP;
21
- constructor(emitter: EventEmitter, options: QaseOptions, collectionRunOptions: NewmanRunOptions);
23
+ private isDisabled;
24
+ constructor(emitter: EventEmitter, _options: QaseOptions, collectionRunOptions: NewmanRunOptions);
25
+ private createHeaders;
22
26
  private getEnv;
23
27
  private log;
28
+ private getPackageVersion;
24
29
  private addRunnerListeners;
25
30
  private extractIds;
26
31
  private checkProject;
27
- private checkRun;
28
32
  private createRun;
33
+ private createRunObject;
34
+ private checkRun;
29
35
  private itemName;
30
36
  private logTestItem;
31
- private publishCaseResult;
37
+ private createBulkResultsBodyObject;
32
38
  }
33
39
  export = NewmanQaseReporter;
package/dist/index.js CHANGED
@@ -3,6 +3,53 @@ 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
+ };
17
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
18
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
19
+ return new (P || (P = Promise))(function (resolve, reject) {
20
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
21
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
22
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
23
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
24
+ });
25
+ };
26
+ var __generator = (this && this.__generator) || function (thisArg, body) {
27
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
28
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
29
+ function verb(n) { return function (v) { return step([n, v]); }; }
30
+ function step(op) {
31
+ if (f) throw new TypeError("Generator is already executing.");
32
+ while (_) try {
33
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
34
+ if (y = 0, t) op = [op[0] & 2, t.value];
35
+ switch (op[0]) {
36
+ case 0: case 1: t = op; break;
37
+ case 4: _.label++; return { value: op[1], done: false };
38
+ case 5: _.label++; y = op[1]; op = [0]; continue;
39
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
40
+ default:
41
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
42
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
43
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
44
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
45
+ if (t[2]) _.ops.pop();
46
+ _.trys.pop(); continue;
47
+ }
48
+ op = body.call(thisArg, _);
49
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
50
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
51
+ }
52
+ };
6
53
  var __spreadArrays = (this && this.__spreadArrays) || function () {
7
54
  for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
8
55
  for (var r = Array(s), k = 0, i = 0; i < il; i++)
@@ -13,52 +60,55 @@ var __spreadArrays = (this && this.__spreadArrays) || function () {
13
60
  var __importDefault = (this && this.__importDefault) || function (mod) {
14
61
  return (mod && mod.__esModule) ? mod : { "default": mod };
15
62
  };
16
- var models_1 = require("qaseio/dist/src/models");
63
+ var src_1 = require("qaseio/dist/src");
64
+ var child_process_1 = require("child_process");
17
65
  var qaseio_1 = require("qaseio");
18
66
  var chalk_1 = __importDefault(require("chalk"));
67
+ var fs_1 = require("fs");
19
68
  var Envs;
20
69
  (function (Envs) {
70
+ Envs["report"] = "QASE_REPORT";
71
+ Envs["apiToken"] = "QASE_API_TOKEN";
72
+ Envs["basePath"] = "QASE_API_BASE_URL";
73
+ Envs["projectCode"] = "QASE_PROJECT_CODE";
21
74
  Envs["runId"] = "QASE_RUN_ID";
75
+ Envs["runName"] = "QASE_RUN_NAME";
76
+ Envs["runDescription"] = "QASE_RUN_DESCRIPTION";
77
+ Envs["runComplete"] = "QASE_RUN_COMPLETE";
78
+ Envs["environmentId"] = "QASE_ENVIRONMENT_ID";
79
+ Envs["rootSuiteTitle"] = "QASE_ROOT_SUITE_TITLE";
22
80
  })(Envs || (Envs = {}));
23
81
  var NewmanQaseReporter = /** @class */ (function () {
24
- function NewmanQaseReporter(emitter, options, collectionRunOptions) {
25
- var _this = this;
82
+ function NewmanQaseReporter(emitter, _options, collectionRunOptions) {
26
83
  this.prePending = {};
27
- this.pending = [];
28
- this.results = [];
29
- this.runIdP = Promise.resolve(null);
30
- this.options = options;
84
+ this.isDisabled = false;
85
+ this.options = _options;
86
+ this.options.projectCode =
87
+ _options.projectCode || this.getEnv(Envs.projectCode) || '';
31
88
  this.collectionOptions = collectionRunOptions;
32
- this.api = new qaseio_1.QaseApi(this.options.apiToken);
89
+ this.options.runComplete =
90
+ !!this.getEnv(Envs.runComplete) || this.options.runComplete;
91
+ this.api = new qaseio_1.QaseApi(this.getEnv(Envs.apiToken) || this.options.apiToken || '', this.getEnv(Envs.basePath) || this.options.basePath, this.createHeaders());
92
+ this.log(chalk_1.default(templateObject_1 || (templateObject_1 = __makeTemplateObject(["{yellow Current PID: ", "}"], ["{yellow Current PID: ", "}"])), process.pid));
33
93
  if (!this.options.projectCode) {
34
94
  return;
35
95
  }
36
96
  this.addRunnerListeners(emitter);
37
- this.runIdP = this.checkProject(this.options.projectCode, function (prjExists) {
38
- if (!prjExists) {
39
- return Promise.reject(chalk_1.default(templateObject_1 || (templateObject_1 = __makeTemplateObject(["{red Project ", " does not exist}"], ["{red Project ", " does not exist}"])), _this.options.projectCode));
40
- }
41
- _this.log(chalk_1.default(templateObject_2 || (templateObject_2 = __makeTemplateObject(["{green Project ", " exists}"], ["{green Project ", " exists}"])), _this.options.projectCode));
42
- var providedRunId = _this.getEnv(Envs.runId) || _this.options.runId;
43
- if (providedRunId) {
44
- return _this.checkRun(providedRunId, function (runExists) {
45
- if (runExists) {
46
- _this.log(chalk_1.default(templateObject_3 || (templateObject_3 = __makeTemplateObject(["{green Using run ", " to publish test results}"], ["{green Using run ", " to publish test results}"])), providedRunId));
47
- return Promise.resolve(providedRunId);
48
- }
49
- else {
50
- return Promise.reject(chalk_1.default(templateObject_4 || (templateObject_4 = __makeTemplateObject(["{red Run ", " does not exist}"], ["{red Run ", " does not exist}"])), providedRunId));
51
- }
52
- });
53
- }
54
- else {
55
- return _this.createRun(_this.options.runName, _this.options.runDescription);
56
- }
57
- }).catch(function (err) {
58
- _this.log(err);
59
- return null;
60
- });
61
97
  }
98
+ NewmanQaseReporter.prototype.createHeaders = function () {
99
+ var nodeVersion = process.version, os = process.platform, arch = process.arch;
100
+ var npmVersion = child_process_1.execSync('npm -v', { encoding: 'utf8' }).replace(/['"\n]+/g, '');
101
+ var qaseapiVersion = this.getPackageVersion('qaseio');
102
+ var frameworkVersion = this.getPackageVersion('newman');
103
+ var reporterVersion = this.getPackageVersion('newman-reporter-qase');
104
+ var xPlatformHeader = "node=" + nodeVersion + "; npm=" + npmVersion + "; os=" + os + "; arch=" + arch;
105
+ // eslint-disable-next-line max-len
106
+ var xClientHeader = "newman=" + frameworkVersion + "; qase-newman=" + reporterVersion + "; qaseapi=" + qaseapiVersion;
107
+ return {
108
+ 'X-Client': xClientHeader,
109
+ 'X-Platform': xPlatformHeader,
110
+ };
111
+ };
62
112
  NewmanQaseReporter.prototype.getEnv = function (name) {
63
113
  return process.env[name];
64
114
  };
@@ -68,11 +118,42 @@ var NewmanQaseReporter = /** @class */ (function () {
68
118
  optionalParams[_i - 1] = arguments[_i];
69
119
  }
70
120
  if (this.options.logging) {
71
- console.log.apply(console, __spreadArrays([chalk_1.default(templateObject_5 || (templateObject_5 = __makeTemplateObject(["{bold {blue qase:}} ", ""], ["{bold {blue qase:}} ", ""])), message)], optionalParams));
121
+ console.log.apply(console, __spreadArrays([chalk_1.default(templateObject_2 || (templateObject_2 = __makeTemplateObject(["{bold {blue qase:}} ", ""], ["{bold {blue qase:}} ", ""])), message)], optionalParams));
122
+ }
123
+ };
124
+ NewmanQaseReporter.prototype.getPackageVersion = function (name) {
125
+ var UNDEFINED = 'undefined';
126
+ try {
127
+ var pathToPackageJson = require.resolve(name + "/package.json", {
128
+ paths: [process.cwd()],
129
+ });
130
+ if (pathToPackageJson) {
131
+ try {
132
+ var packageString = fs_1.readFileSync(pathToPackageJson, {
133
+ encoding: 'utf8',
134
+ });
135
+ if (packageString) {
136
+ var packageObject = JSON.parse(packageString);
137
+ return packageObject.version;
138
+ }
139
+ return UNDEFINED;
140
+ }
141
+ catch (error) {
142
+ return UNDEFINED;
143
+ }
144
+ }
145
+ }
146
+ catch (error) {
147
+ return UNDEFINED;
72
148
  }
73
149
  };
74
150
  NewmanQaseReporter.prototype.addRunnerListeners = function (runner) {
75
151
  var _this = this;
152
+ runner.on('start', function () {
153
+ if (_this.isDisabled) {
154
+ return;
155
+ }
156
+ });
76
157
  runner.on('beforeItem', function (err, args) {
77
158
  var item = args.item;
78
159
  var name = _this.itemName(args);
@@ -81,9 +162,10 @@ var NewmanQaseReporter = /** @class */ (function () {
81
162
  _this.log('Test', name, 'starting, case ids:', ids);
82
163
  _this.prePending[name] = {
83
164
  name: name,
84
- result: models_1.ResultStatus.PASSED,
165
+ result: src_1.ResultCreateStatusEnum.PASSED,
85
166
  duration: 0,
86
167
  ids: ids,
168
+ startStamp: Date.now(),
87
169
  };
88
170
  }
89
171
  });
@@ -96,17 +178,81 @@ var NewmanQaseReporter = /** @class */ (function () {
96
178
  runner.on('assertion', function (err, args) {
97
179
  var name = _this.itemName(args);
98
180
  if (name && _this.prePending[name] && err) {
99
- _this.prePending[name].result = models_1.ResultStatus.FAILED;
181
+ _this.prePending[name].result = src_1.ResultCreateStatusEnum.FAILED;
100
182
  _this.prePending[name].err = err;
101
183
  }
102
184
  });
103
185
  runner.on('item', function (err, args) {
104
186
  var name = _this.itemName(args);
105
187
  if (name && _this.prePending[name]) {
106
- _this.publishCaseResult(_this.prePending[name]);
188
+ var item = _this.prePending[name];
189
+ item.endStamp = Date.now();
190
+ item.duration = item.endStamp - item.startStamp;
191
+ _this.logTestItem(_this.prePending[name]);
107
192
  }
108
193
  });
194
+ runner.on('beforeDone', function () {
195
+ void _this.checkProject(_this.options.projectCode, function (prjExists) { return __awaiter(_this, void 0, void 0, function () {
196
+ var providedRunId;
197
+ var _this = this;
198
+ return __generator(this, function (_a) {
199
+ if (!prjExists) {
200
+ this.log(chalk_1.default(templateObject_3 || (templateObject_3 = __makeTemplateObject(["{red Project ", " does not exist}"], ["{red Project ", " does not exist}"])), this.options.projectCode));
201
+ this.isDisabled = true;
202
+ return [2 /*return*/];
203
+ }
204
+ this.log(chalk_1.default(templateObject_4 || (templateObject_4 = __makeTemplateObject(["{green Project ", " exists}"], ["{green Project ", " exists}"])), this.options.projectCode));
205
+ providedRunId = this.getEnv(Envs.runId) || this.options.runId;
206
+ if (providedRunId) {
207
+ this.runId = providedRunId;
208
+ return [2 /*return*/, this.checkRun(this.runId, function (runExists) {
209
+ if (runExists) {
210
+ _this.log(chalk_1.default(templateObject_5 || (templateObject_5 = __makeTemplateObject(["{green Using run ", " to publish test results}"], ["{green Using run ", " to publish test results}"])), _this.runId));
211
+ }
212
+ else {
213
+ _this.log(chalk_1.default(templateObject_6 || (templateObject_6 = __makeTemplateObject(["{red Run ", " does not exist}"], ["{red Run ", " does not exist}"])), _this.runId));
214
+ _this.isDisabled = true;
215
+ }
216
+ })];
217
+ }
218
+ else {
219
+ return [2 /*return*/, this.createRun(this.getEnv(Envs.runName) || this.options.runName, this.getEnv(Envs.runDescription) ||
220
+ this.options.runDescription, function (created) {
221
+ var _a;
222
+ if (created) {
223
+ _this.runId = (_a = created.result) === null || _a === void 0 ? void 0 : _a.id;
224
+ process.env.QASE_RUN_ID = String(_this.runId);
225
+ _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));
226
+ }
227
+ else {
228
+ _this.log(chalk_1.default(templateObject_8 || (templateObject_8 = __makeTemplateObject(["{red Could not create run in project ", "}"], ["{red Could not create run in project ", "}"])), _this.options.projectCode));
229
+ _this.isDisabled = true;
230
+ }
231
+ })];
232
+ }
233
+ return [2 /*return*/];
234
+ });
235
+ }); }).then(function () {
236
+ var config = {
237
+ apiToken: _this.getEnv(Envs.apiToken) || _this.options.apiToken || '',
238
+ basePath: _this.getEnv(Envs.basePath) || _this.options.basePath,
239
+ headers: _this.createHeaders(),
240
+ code: _this.options.projectCode,
241
+ runId: Number(_this.runId),
242
+ body: {
243
+ results: _this.createBulkResultsBodyObject(),
244
+ },
245
+ };
246
+ child_process_1.spawnSync('node', [__dirname + "/reportBulk.js"], {
247
+ stdio: 'inherit',
248
+ env: Object.assign(process.env, {
249
+ reporting_config: JSON.stringify(config),
250
+ }),
251
+ });
252
+ });
253
+ });
109
254
  runner.on('done', function () {
255
+ _this.log('Done');
110
256
  _this.log('Run finished');
111
257
  });
112
258
  };
@@ -134,32 +280,79 @@ var NewmanQaseReporter = /** @class */ (function () {
134
280
  return ids;
135
281
  };
136
282
  NewmanQaseReporter.prototype.checkProject = function (projectCode, cb) {
137
- return this.api.projects.exists(projectCode).then(cb);
283
+ var _a;
284
+ return __awaiter(this, void 0, void 0, function () {
285
+ var resp, err_1;
286
+ return __generator(this, function (_b) {
287
+ switch (_b.label) {
288
+ case 0:
289
+ _b.trys.push([0, 3, , 4]);
290
+ return [4 /*yield*/, this.api.projects.getProject(projectCode)];
291
+ case 1:
292
+ resp = _b.sent();
293
+ return [4 /*yield*/, cb(Boolean((_a = resp.data.result) === null || _a === void 0 ? void 0 : _a.code))];
294
+ case 2:
295
+ _b.sent();
296
+ return [3 /*break*/, 4];
297
+ case 3:
298
+ err_1 = _b.sent();
299
+ this.log(err_1);
300
+ this.isDisabled = true;
301
+ return [3 /*break*/, 4];
302
+ case 4: return [2 /*return*/];
303
+ }
304
+ });
305
+ });
138
306
  };
139
- NewmanQaseReporter.prototype.checkRun = function (runId, cb) {
140
- if (runId !== undefined) {
141
- return this.api.runs.exists(this.options.projectCode, runId).then(cb);
142
- }
143
- else {
144
- return cb(false);
145
- }
307
+ NewmanQaseReporter.prototype.createRun = function (name, description, cb) {
308
+ return __awaiter(this, void 0, void 0, function () {
309
+ var runObject, resp, err_2;
310
+ return __generator(this, function (_a) {
311
+ switch (_a.label) {
312
+ case 0:
313
+ _a.trys.push([0, 2, , 3]);
314
+ runObject = this.createRunObject(name || "Automated run " + new Date().toISOString(), [], {
315
+ description: description || 'Newman automated run',
316
+ is_autotest: true,
317
+ });
318
+ return [4 /*yield*/, this.api.runs.createRun(this.options.projectCode, runObject)];
319
+ case 1:
320
+ resp = _a.sent();
321
+ cb(resp.data);
322
+ return [3 /*break*/, 3];
323
+ case 2:
324
+ err_2 = _a.sent();
325
+ this.log("Error on creating run " + err_2);
326
+ this.isDisabled = true;
327
+ return [3 /*break*/, 3];
328
+ case 3: return [2 /*return*/];
329
+ }
330
+ });
331
+ });
146
332
  };
147
- NewmanQaseReporter.prototype.createRun = function (name, description) {
148
- var _this = this;
149
- return this.api.runs.create(this.options.projectCode, new models_1.RunCreate(name || "Automated run " + new Date().toISOString(), [], {
150
- description: description || 'Newman automated run',
151
- // eslint-disable-next-line camelcase
152
- is_autotest: true,
153
- })).catch(function (err) { return Promise.reject("Error on creating run " + err); })
154
- .then(function (res) {
155
- var _a;
156
- var runId = (_a = res.data) === null || _a === void 0 ? void 0 : _a.id;
157
- if (runId) {
158
- return runId;
159
- }
160
- else {
161
- return Promise.reject(chalk_1.default(templateObject_6 || (templateObject_6 = __makeTemplateObject(["{red Could not create run in project ", "}"], ["{red Could not create run in project ", "}"])), _this.options.projectCode));
162
- }
333
+ NewmanQaseReporter.prototype.createRunObject = function (name, cases, args) {
334
+ return __assign({ title: name, cases: cases }, args);
335
+ };
336
+ NewmanQaseReporter.prototype.checkRun = function (runId, cb) {
337
+ return __awaiter(this, void 0, void 0, function () {
338
+ var _this = this;
339
+ return __generator(this, function (_a) {
340
+ if (runId === undefined) {
341
+ cb(false);
342
+ return [2 /*return*/];
343
+ }
344
+ return [2 /*return*/, this.api.runs
345
+ .getRun(this.options.projectCode, Number(runId))
346
+ .then(function (resp) {
347
+ var _a, _b;
348
+ _this.log("Get run result on checking run " + ((_a = resp.data.result) === null || _a === void 0 ? void 0 : _a.id));
349
+ cb(Boolean((_b = resp.data.result) === null || _b === void 0 ? void 0 : _b.id));
350
+ })
351
+ .catch(function (err) {
352
+ _this.log("Error on checking run " + err);
353
+ _this.isDisabled = true;
354
+ })];
355
+ });
163
356
  });
164
357
  };
165
358
  NewmanQaseReporter.prototype.itemName = function (args) {
@@ -171,40 +364,49 @@ var NewmanQaseReporter = /** @class */ (function () {
171
364
  };
172
365
  NewmanQaseReporter.prototype.logTestItem = function (test) {
173
366
  var map = {
174
- failed: chalk_1.default(templateObject_7 || (templateObject_7 = __makeTemplateObject(["{red Test ", " ", "}"], ["{red Test ", " ", "}"])), test.name, test.result),
175
- passed: chalk_1.default(templateObject_8 || (templateObject_8 = __makeTemplateObject(["{green Test ", " ", "}"], ["{green Test ", " ", "}"])), test.name, test.result),
176
- pending: chalk_1.default(templateObject_9 || (templateObject_9 = __makeTemplateObject(["{blueBright Test ", " ", "}"], ["{blueBright Test ", " ", "}"])), test.name, test.result),
367
+ failed: chalk_1.default(templateObject_9 || (templateObject_9 = __makeTemplateObject(["{red Test ", " ", "}"], ["{red Test ", " ", "}"])), test.name, test.result),
368
+ passed: chalk_1.default(templateObject_10 || (templateObject_10 = __makeTemplateObject(["{green Test ", " ", "}"], ["{green Test ", " ", "}"])), test.name, test.result),
369
+ pending: chalk_1.default(templateObject_11 || (templateObject_11 = __makeTemplateObject(["{blueBright Test ", " ", "}"], ["{blueBright Test ", " ", "}"])), test.name, test.result),
177
370
  };
178
371
  if (test.result) {
179
372
  this.log(map[test.result]);
180
373
  }
181
374
  };
182
- NewmanQaseReporter.prototype.publishCaseResult = function (test) {
375
+ NewmanQaseReporter.prototype.createBulkResultsBodyObject = function () {
183
376
  var _this = this;
184
- this.logTestItem(test);
185
- var publishTest = function (runId) {
186
- if (runId === null || test.ids.length === 0) {
187
- return;
188
- }
189
- test.ids.forEach(function (caseId) {
190
- var _a;
191
- _this.log(chalk_1.default(templateObject_10 || (templateObject_10 = __makeTemplateObject(["{gray Result publishing: ", " case: ", "}"], ["{gray Result publishing: ", " case: ", "}"])), test.name, caseId));
192
- _this.api.results.create(_this.options.projectCode, runId, new models_1.ResultCreate(parseInt(caseId, 10), test.result, {
193
- // eslint-disable-next-line camelcase
194
- time_ms: test.duration,
195
- stacktrace: (_a = test.err) === null || _a === void 0 ? void 0 : _a.stack,
196
- comment: test.err ? test.err.message : "Qase Newman Reporter " + new Date().toLocaleString(),
197
- }))
198
- .then(function (res) {
199
- _this.results.push({ test: test, result: res.data });
200
- _this.log(chalk_1.default(templateObject_11 || (templateObject_11 = __makeTemplateObject(["{gray Result published: ", " case ", "}"], ["{gray Result published: ", " case ", "}"])), test.name, caseId));
201
- })
202
- .catch(function (err) {
203
- _this.log("Got error on publishing: " + err);
377
+ var prePandingValuesArray = Object.values(this.prePending);
378
+ return prePandingValuesArray.reduce(function (accum, test) {
379
+ var _a;
380
+ var ids = test.ids;
381
+ if (ids && ids.length > 0) {
382
+ var testsByIdArray = ids.map(function (id) {
383
+ var _a;
384
+ return ({
385
+ case_id: Number(id),
386
+ status: test.result,
387
+ time_ms: test.duration,
388
+ stacktrace: (_a = test.err) === null || _a === void 0 ? void 0 : _a.stack,
389
+ comment: test.err ? test.err.message : '',
390
+ });
204
391
  });
205
- });
206
- };
207
- void this.runIdP.then(publishTest);
392
+ return __spreadArrays(accum, testsByIdArray);
393
+ }
394
+ else {
395
+ var testByIdArray = [
396
+ {
397
+ case: {
398
+ title: test.name,
399
+ suite_title: _this.options.rootSuiteTitle || 'Autocreated Root Suite',
400
+ },
401
+ status: test.result,
402
+ time_ms: test.duration,
403
+ stacktrace: (_a = test.err) === null || _a === void 0 ? void 0 : _a.stack,
404
+ comment: test.err ? test.err.message : '',
405
+ },
406
+ ];
407
+ return __spreadArrays(accum, testByIdArray);
408
+ }
409
+ }, []);
208
410
  };
209
411
  return NewmanQaseReporter;
210
412
  }());
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}