cucumberjs-qase-reporter 0.2.3 → 0.2.8-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/README.md CHANGED
@@ -1,15 +1,14 @@
1
- # [Qase TMS](https://qase.io) Cucumber JS Reporter
1
+ > # Qase TMS Cucumber JS reporter
2
+ >
3
+ > Publish results simple and easy.
2
4
 
3
- [![License](https://lxgaming.github.io/badges/License-Apache%202.0-blue.svg)](https://www.apache.org/licenses/LICENSE-2.0)
4
-
5
- ## Installation
5
+ ## How to integrate
6
6
 
7
7
  ```
8
8
  npm install cucumberjs-qase-reporter
9
9
  ```
10
10
 
11
-
12
- ## Usage
11
+ ## Example of usage
13
12
 
14
13
  Decorate your scenarios with Qase TMS case IDs in format `Q-<case id>` or `Q123`, also `q` can be in any case:
15
14
 
@@ -34,12 +33,17 @@ Feature: Cucumber documentation
34
33
  And I should see a "Dependencies" badge
35
34
  ```
36
35
 
37
- After that you can use `cucumberjs-qase-reporter` as formatter:
36
+ To run tests and create a test run, execute the command (for example from folder examples):
38
37
 
39
- ```bash
40
- cucumber-js -f cucumberjs-qase-reporter features
41
38
  ```
39
+ cucumber-js -f cucumberjs-qase-reporter --format-options='{\"qaseConfig\": \"./.qaserc\"}' features -r examples/zombie/support -r examples/zombie/steps
42
40
 
41
+ ```
42
+ ![Output of run](./examples/screenshots/screenshot.png)​
43
+ A test run will be performed and available at:
44
+ ```
45
+ https://app.qase.io/run/<projectCode>
46
+ ```
43
47
  ## Configuration
44
48
 
45
49
  Qase reporter supports passing parameters using two ways:
@@ -47,6 +51,8 @@ using `.qaserc` file and using ENV variables.
47
51
 
48
52
  `.qaserc` parameters:
49
53
  - `enabled` - Enable reporter
54
+ - `basePath` - URL Qase.io
55
+ - `environmentId` - To execute with the sending of the envinroment information
50
56
  - `apiToken` - Token for API access, you can find more information
51
57
  [here](https://developers.qase.io/#authentication)
52
58
  - `projectCode` - Code of your project (can be extracted from main
@@ -62,24 +68,33 @@ using `.qaserc` file and using ENV variables.
62
68
  Example configuration file:
63
69
  ```json
64
70
  {
65
- "enabled": true,
66
- "logging": true,
67
- "apiToken": "a786b45e371e1097c4c78a3211e3a1d23018ceb9",
68
- "projectCode": "PROJECTCODE",
69
- "runName": "CucumberJS run %DATE%"
71
+ "enabled": true,
72
+ "logging": true,
73
+ "apiToken": "api_key",
74
+ "projectCode": "project_code",
75
+ "runName": "CucumberJS run %DATE%",
76
+ "environmentId": 1,
77
+ "basePath": "https://api.qase.io/v1"
70
78
  }
71
79
  ```
72
80
 
73
81
  Supported ENV variables:
74
82
 
75
83
  - `QASE_ENABLED` - Same as `enabled`
84
+ - `QASE_API_BASE_URL` - Same as `basePath`
76
85
  - `QASE_API_TOKEN` - Same as `apiToken`
77
86
  - `QASE_PROJECT` - Same as `projectCode`
78
87
  - `QASE_RUN_ID` - Pass Run ID from ENV and override reporter options
79
88
  - `QASE_RUN_NAME` - Same as `runName`
80
89
  - `QASE_RUN_DESCRIPTION` - Same as `runDescription`
90
+ - `QASE_ENVIRONMENT_ID` - Same as `environmentId`
81
91
  - `QASE_LOGGING` - Same as `logging`
82
92
 
93
+ To run using ENV you have to execute:
94
+ ```bash
95
+ cucumber-js -f cucumberjs-qase-reporter features
96
+ ```
97
+
83
98
  ## Setup with Protractor
84
99
 
85
100
  Due to different configurations of protractor and cucumber itself you should install a bit more libraries:
@@ -105,3 +120,7 @@ exports.config = {
105
120
  ```
106
121
 
107
122
  **Do not forget to add .qaserc file!**
123
+
124
+ <!-- references -->
125
+
126
+ [auth]: https://developers.qase.io/#authentication
package/dist/index.d.ts CHANGED
@@ -17,10 +17,13 @@ declare class QaseReporter extends Formatter {
17
17
  private _log;
18
18
  private checkProject;
19
19
  private createRun;
20
+ private createRunObject;
20
21
  private checkRun;
21
22
  private saveRunId;
22
23
  private logTestItem;
23
24
  private publishCaseResult;
24
25
  private extractIds;
26
+ private createHeaders;
27
+ private getPackageVersion;
25
28
  }
26
29
  export = QaseReporter;
package/dist/index.js CHANGED
@@ -2,20 +2,22 @@
2
2
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
+ /* eslint-disable camelcase */
5
6
  /* eslint-disable no-console,no-underscore-dangle,@typescript-eslint/no-non-null-assertion */
6
- const models_1 = require("qaseio/dist/src/models");
7
+ const src_1 = require("qaseio/dist/src");
7
8
  const cucumber_1 = require("@cucumber/cucumber");
8
9
  const qaseio_1 = require("qaseio");
9
10
  const chalk_1 = __importDefault(require("chalk"));
11
+ const child_process_1 = require("child_process");
10
12
  const fs_1 = __importDefault(require("fs"));
11
13
  const messages_1 = require("@cucumber/messages/dist/src/messages");
12
14
  const moment_1 = __importDefault(require("moment"));
13
15
  const path_1 = __importDefault(require("path"));
14
16
  var Status = messages_1.io.cucumber.messages.TestStepFinished.TestStepResult.Status;
15
17
  const StatusMapping = {
16
- [Status.PASSED]: models_1.ResultStatus.PASSED,
17
- [Status.FAILED]: models_1.ResultStatus.FAILED,
18
- [Status.SKIPPED]: models_1.ResultStatus.SKIPPED,
18
+ [Status.PASSED]: src_1.ResultCreateStatusEnum.PASSED,
19
+ [Status.FAILED]: src_1.ResultCreateStatusEnum.FAILED,
20
+ [Status.SKIPPED]: src_1.ResultCreateStatusEnum.SKIPPED,
19
21
  [Status.AMBIGUOUS]: null,
20
22
  [Status.PENDING]: null,
21
23
  [Status.UNDEFINED]: null,
@@ -42,12 +44,12 @@ const prepareConfig = (options = {}, configFile = '.qaserc') => {
42
44
  const config = Object.assign(loaded || {}, options);
43
45
  return {
44
46
  enabled: process.env.QASE_ENABLED === 'true' || config.enabled || false,
45
- apiToken: process.env.QASE_API_TOKEN || config.apiToken,
47
+ basePath: process.env.QASE_API_BASE_URL || config.basePath,
48
+ apiToken: process.env.QASE_API_TOKEN || config.apiToken || '',
49
+ environmentId: Number.parseInt(process.env.QASE_ENVIRONMENT_ID, 10) || config.environmentId,
46
50
  projectCode: process.env.QASE_PROJECT || config.projectCode || '',
47
51
  runId: process.env.QASE_RUN_ID || config.runId || '',
48
- runName: process.env.QASE_RUN_NAME ||
49
- config.runName ||
50
- 'Automated Run %DATE%',
52
+ runName: process.env.QASE_RUN_NAME || config.runName || 'Automated Run %DATE%',
51
53
  runDescription: process.env.QASE_RUN_DESCRIPTION || config.runDescription,
52
54
  logging: process.env.QASE_LOGGING !== '' || config.logging,
53
55
  };
@@ -83,7 +85,7 @@ class QaseReporter extends cucumber_1.Formatter {
83
85
  this.shouldPublish = 0;
84
86
  this.config = prepareConfig(options.parsedArgvOptions, (_a = options.parsedArgvOptions) === null || _a === void 0 ? void 0 : _a.qaseConfig);
85
87
  this.enabled = verifyConfig(this.config);
86
- this.api = new qaseio_1.QaseApi(this.config.apiToken);
88
+ this.api = new qaseio_1.QaseApi(this.config.apiToken, this.config.basePath, this.createHeaders());
87
89
  if (!this.enabled) {
88
90
  return;
89
91
  }
@@ -97,13 +99,13 @@ class QaseReporter extends cucumber_1.Formatter {
97
99
  };
98
100
  }
99
101
  else if (envelope.testRunStarted) {
100
- this.checkProject(this.config.projectCode, (prjExists) => {
102
+ void this.checkProject(this.config.projectCode, async (prjExists) => {
101
103
  if (prjExists) {
102
104
  this._log(chalk_1.default `{green Project ${this.config.projectCode} exists}`);
103
105
  const willRun = Object.keys(this.pickleInfo).length !== 0;
104
106
  if (this.config.runId && willRun) {
105
107
  this.saveRunId(this.config.runId);
106
- this.checkRun(this.config.runId, (runExists) => {
108
+ return this.checkRun(this.config.runId, (runExists) => {
107
109
  const run = this.config.runId;
108
110
  if (runExists) {
109
111
  this._log(chalk_1.default `{green Using run ${run} to publish test results}`);
@@ -114,9 +116,10 @@ class QaseReporter extends cucumber_1.Formatter {
114
116
  });
115
117
  }
116
118
  else if (!this.config.runId && willRun) {
117
- this.createRun(this.config.runName, this.config.runDescription, (created) => {
119
+ return this.createRun(this.config.runName, this.config.runDescription, (created) => {
120
+ var _a;
118
121
  if (created) {
119
- this.saveRunId(created.id);
122
+ this.saveRunId((_a = created.result) === null || _a === void 0 ? void 0 : _a.id);
120
123
  this._log(
121
124
  // eslint-disable-next-line max-len
122
125
  chalk_1.default `{green Using run ${this.config.runId} to publish test results}`);
@@ -153,7 +156,7 @@ class QaseReporter extends cucumber_1.Formatter {
153
156
  }
154
157
  else if (envelope.testCaseStarted) {
155
158
  this.testCaseStarts[envelope.testCaseStarted.id] = envelope.testCaseStarted;
156
- this.testCaseStartedResult[envelope.testCaseStarted.id] = models_1.ResultStatus.PASSED;
159
+ this.testCaseStartedResult[envelope.testCaseStarted.id] = src_1.ResultCreateStatusEnum.PASSED;
157
160
  }
158
161
  else if (envelope.testStepFinished) {
159
162
  const stepFin = envelope.testStepFinished;
@@ -167,10 +170,10 @@ class QaseReporter extends cucumber_1.Formatter {
167
170
  chalk_1.default `{redBright Unexpected finish status ${stepStatus} received for step ${stepMessage}}`);
168
171
  return;
169
172
  }
170
- if (newStatus !== models_1.ResultStatus.PASSED) {
173
+ if (newStatus !== src_1.ResultCreateStatusEnum.PASSED) {
171
174
  this.addErrorMessage(stepFin.testCaseStartedId, (_a = stepFin.testStepResult) === null || _a === void 0 ? void 0 : _a.message);
172
175
  if (oldStatus) {
173
- if (oldStatus !== models_1.ResultStatus.FAILED && newStatus) {
176
+ if (oldStatus !== src_1.ResultCreateStatusEnum.FAILED && newStatus) {
174
177
  this.testCaseStartedResult[stepFin.testCaseStartedId] = newStatus;
175
178
  }
176
179
  }
@@ -217,32 +220,50 @@ class QaseReporter extends cucumber_1.Formatter {
217
220
  console.log(chalk_1.default `{bold {blue qase:}} ${message}`, ...optionalParams);
218
221
  }
219
222
  }
220
- checkProject(projectCode, cb) {
221
- this.api.projects.exists(projectCode)
222
- .then(cb)
223
- .catch((err) => {
223
+ async checkProject(projectCode, cb) {
224
+ var _a;
225
+ try {
226
+ const resp = await this.api.projects.getProject(projectCode);
227
+ await cb(Boolean((_a = resp.data.result) === null || _a === void 0 ? void 0 : _a.code));
228
+ }
229
+ catch (err) {
224
230
  this._log(err);
225
- });
226
- }
227
- createRun(name, description, cb) {
228
- this.api.runs.create(this.config.projectCode, new models_1.RunCreate(name || `Automated run ${new Date().toISOString()}`, [], { description: description || 'Cypress automated run' }))
229
- .then((res) => res.data)
230
- .then(cb)
231
- .catch((err) => {
232
- this._log(`Error on creating run ${err}`);
233
- });
231
+ this.enabled = false;
232
+ }
234
233
  }
235
- checkRun(runId, cb) {
236
- if (runId !== undefined) {
237
- this.api.runs.exists(this.config.projectCode, runId)
238
- .then(cb)
239
- .catch((err) => {
240
- this._log(`Error on checking run ${err}`);
234
+ async createRun(name, description, cb) {
235
+ try {
236
+ const runObject = this.createRunObject(name || `Automated run ${new Date().toISOString()}`, [], {
237
+ description: description || 'CucumberJS automated run',
238
+ environment_id: this.config.environmentId,
239
+ is_autotest: true,
241
240
  });
241
+ const res = await this.api.runs.createRun(this.config.projectCode, runObject);
242
+ cb(res.data);
243
+ }
244
+ catch (err) {
245
+ this._log(`Error on creating run ${err}`);
246
+ this.enabled = false;
242
247
  }
243
- else {
248
+ }
249
+ createRunObject(name, cases, args) {
250
+ return Object.assign({ title: name, cases }, args);
251
+ }
252
+ async checkRun(runId, cb) {
253
+ if (runId === undefined) {
244
254
  cb(false);
255
+ return;
245
256
  }
257
+ return this.api.runs.getRun(this.config.projectCode, Number(runId))
258
+ .then((resp) => {
259
+ var _a, _b;
260
+ this._log(`Get run result on checking run ${(_a = resp.data.result) === null || _a === void 0 ? void 0 : _a.id}`);
261
+ cb(Boolean((_b = resp.data.result) === null || _b === void 0 ? void 0 : _b.id));
262
+ })
263
+ .catch((err) => {
264
+ this._log(`Error on checking run ${err}`);
265
+ this.enabled = false;
266
+ });
246
267
  }
247
268
  saveRunId(runId) {
248
269
  this.config.runId = runId;
@@ -275,15 +296,16 @@ class QaseReporter extends cucumber_1.Formatter {
275
296
  if (caseId) {
276
297
  const add = caseIds.length > 1 ? chalk_1.default ` {white For case ${caseId}}` : '';
277
298
  this._log(chalk_1.default `{gray Start publishing: ${test.name}}${add}`);
278
- const result = new models_1.ResultCreate(parseInt(caseId, 10), status, {
299
+ this.api.results.createResult(this.config.projectCode, Number(runId), {
300
+ status,
301
+ case_id: parseInt(caseId, 10),
279
302
  time: test.duration,
280
303
  stacktrace: test.error,
281
304
  comment: test.error ? test.error.split('\n')[0] : undefined,
282
- });
283
- this.api.results.create(this.config.projectCode, runId, result)
305
+ })
284
306
  .then((res) => {
285
307
  this.results.push({ test, result: res.data });
286
- this._log(chalk_1.default `{gray Result published: ${test.name} ${res.data.hash}}${add}`);
308
+ this._log(chalk_1.default `{gray Result published: ${test.name} ${caseId}}${add}`);
287
309
  this.shouldPublish--;
288
310
  })
289
311
  .catch((err) => {
@@ -304,6 +326,42 @@ class QaseReporter extends cucumber_1.Formatter {
304
326
  const regex = /[Qq]-*(\d+)/;
305
327
  return tagsList.filter((tagInfo) => regex.test(tagInfo.name)).map((tagInfo) => regex.exec(tagInfo.name)[1]);
306
328
  }
329
+ createHeaders() {
330
+ const { version: nodeVersion, platform: os, arch } = process;
331
+ const npmVersion = child_process_1.execSync('npm -v', { encoding: 'utf8' }).replace(/['"\n]+/g, '');
332
+ const qaseapiVersion = this.getPackageVersion('qaseio');
333
+ const frameworkVersion = this.getPackageVersion('@cucumber/cucumber');
334
+ const reporterVersion = this.getPackageVersion('cucumberjs-qase-reporter');
335
+ const xPlatformHeader = `node=${nodeVersion};npm=${npmVersion};os=${os};arch=${arch}`;
336
+ // eslint-disable-next-line max-len
337
+ const xClientHeader = `cucumberjs=${frameworkVersion};qase-cucumberjs=${reporterVersion};qaseapi=${qaseapiVersion}`;
338
+ return {
339
+ 'X-Client': xClientHeader,
340
+ 'X-Platform': xPlatformHeader,
341
+ };
342
+ }
343
+ getPackageVersion(name) {
344
+ const UNDEFINED = 'undefined';
345
+ try {
346
+ const pathToPackageJson = require.resolve(`${name}/package.json`, { paths: [process.cwd()] });
347
+ if (pathToPackageJson) {
348
+ try {
349
+ const packageString = fs_1.default.readFileSync(pathToPackageJson, { encoding: 'utf8' });
350
+ if (packageString) {
351
+ const packageObject = JSON.parse(packageString);
352
+ return packageObject.version;
353
+ }
354
+ return UNDEFINED;
355
+ }
356
+ catch (error) {
357
+ return UNDEFINED;
358
+ }
359
+ }
360
+ }
361
+ catch (error) {
362
+ return UNDEFINED;
363
+ }
364
+ }
307
365
  }
308
366
  module.exports = QaseReporter;
309
367
  //# 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":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}