qase-javascript-commons 2.2.19 → 2.3.1

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.
Files changed (42) hide show
  1. package/README.md +24 -24
  2. package/changelog.md +21 -15
  3. package/dist/client/clientV1.d.ts +31 -0
  4. package/dist/client/clientV1.js +177 -0
  5. package/dist/client/clientV2.d.ts +26 -0
  6. package/dist/client/clientV2.js +197 -0
  7. package/dist/client/dateUtils.d.ts +2 -0
  8. package/dist/client/dateUtils.js +20 -0
  9. package/dist/client/interface.d.ts +6 -0
  10. package/dist/client/interface.js +2 -0
  11. package/dist/config/config-validation-schema.js +0 -22
  12. package/dist/env/env-enum.d.ts +1 -2
  13. package/dist/env/env-enum.js +0 -1
  14. package/dist/env/env-to-config.js +0 -1
  15. package/dist/env/env-type.d.ts +2 -3
  16. package/dist/env/env-validation-schema.js +0 -4
  17. package/dist/formatter/json-formatter.d.ts +2 -2
  18. package/dist/formatter/jsonp-formatter.d.ts +2 -2
  19. package/dist/models/attachment.d.ts +2 -2
  20. package/dist/models/config/TestOpsOptionsType.d.ts +25 -0
  21. package/dist/models/config/TestOpsOptionsType.js +2 -0
  22. package/dist/models/execution-sum.d.ts +2 -2
  23. package/dist/models/host-data.d.ts +2 -1
  24. package/dist/models/report.d.ts +3 -3
  25. package/dist/models/short-result.d.ts +2 -2
  26. package/dist/models/stats.d.ts +2 -2
  27. package/dist/models/test-result.d.ts +6 -6
  28. package/dist/options/options-type.d.ts +2 -6
  29. package/dist/qase.d.ts +1 -0
  30. package/dist/qase.js +16 -53
  31. package/dist/reporters/index.d.ts +1 -1
  32. package/dist/reporters/testops-reporter.d.ts +8 -161
  33. package/dist/reporters/testops-reporter.js +24 -537
  34. package/dist/state/state.js +1 -0
  35. package/dist/steps/step.d.ts +1 -1
  36. package/dist/steps/step.js +2 -2
  37. package/dist/utils/hostData.js +4 -2
  38. package/dist/utils/logger.js +17 -23
  39. package/dist/writer/fs-writer.d.ts +3 -3
  40. package/package.json +3 -2
  41. package/dist/utils/custom-boundary.d.ts +0 -26
  42. package/dist/utils/custom-boundary.js +0 -30
@@ -22,16 +22,12 @@ var __importStar = (this && this.__importStar) || function (mod) {
22
22
  __setModuleDefault(result, mod);
23
23
  return result;
24
24
  };
25
- var __importDefault = (this && this.__importDefault) || function (mod) {
26
- return (mod && mod.__esModule) ? mod : { "default": mod };
27
- };
28
25
  Object.defineProperty(exports, "__esModule", { value: true });
29
26
  exports.Logger = void 0;
30
27
  const fs = __importStar(require("fs"));
31
28
  const path = __importStar(require("path"));
32
29
  const is_axios_error_1 = require("./is-axios-error");
33
30
  const qase_error_1 = require("./qase-error");
34
- const lodash_get_1 = __importDefault(require("lodash.get"));
35
31
  class Logger {
36
32
  debug;
37
33
  filePath;
@@ -77,7 +73,7 @@ class Logger {
77
73
  else if (error instanceof qase_error_1.QaseError && error.cause) {
78
74
  logMessage += this.doLogError('\n Caused by:', error.cause);
79
75
  }
80
- logMessage += `\n ${error.stack || `${error.name}: ${error.message}`}`;
76
+ logMessage += `\n ${error.stack ?? `${error.name}: ${error.message}`}`;
81
77
  }
82
78
  else {
83
79
  logMessage += `\n ${String(error)}`;
@@ -89,15 +85,18 @@ class Logger {
89
85
  * @private
90
86
  */
91
87
  logApiError(error) {
92
- let logMessage = '\n';
93
- const errorMessage = (0, lodash_get_1.default)(error, 'response.data.errorMessage')
94
- ?? (0, lodash_get_1.default)(error, 'response.data.error')
95
- ?? (0, lodash_get_1.default)(error, 'response.statusText')
96
- ?? 'Unknown error';
97
- const errorFields = this.formatErrorFields((0, lodash_get_1.default)(error, 'response.data.errorFields'));
98
- logMessage += `Message: ${String(errorMessage)}`;
88
+ if (!error.response?.data) {
89
+ return `\nMessage: ${error.message || 'Unknown error'}`;
90
+ }
91
+ const response = error.response.data;
92
+ const statusText = error.response.statusText;
93
+ const errorMessage = response.errorMessage
94
+ ?? response.error
95
+ ?? statusText;
96
+ const errorFields = this.formatErrorFields(response.errorFields);
97
+ let logMessage = `\nMessage: ${errorMessage}`;
99
98
  if (errorFields) {
100
- logMessage += `\n ${errorFields}`;
99
+ logMessage += `\n${errorFields}`;
101
100
  }
102
101
  return logMessage;
103
102
  }
@@ -107,17 +106,12 @@ class Logger {
107
106
  * @private
108
107
  */
109
108
  formatErrorFields(errorFields) {
110
- if (Array.isArray(errorFields)) {
111
- return errorFields.reduce((acc, item) => {
112
- const field = (0, lodash_get_1.default)(item, 'field');
113
- const error = (0, lodash_get_1.default)(item, 'error');
114
- if (field && error) {
115
- return acc + `${String(field)}: ${String(error)}\n`;
116
- }
117
- return acc;
118
- }, '');
109
+ if (!errorFields?.length) {
110
+ return undefined;
119
111
  }
120
- return undefined;
112
+ return errorFields
113
+ .map(({ field, error }) => `${field}: ${error}`)
114
+ .join('\n');
121
115
  }
122
116
  }
123
117
  exports.Logger = Logger;
@@ -1,10 +1,10 @@
1
1
  import { WriterInterface } from './writer-interface';
2
2
  import { TestResultType, Attachment, Report } from '../models';
3
3
  import { FormatEnum } from './driver-enum';
4
- export type FsWriterOptionsType = {
4
+ export interface FsWriterOptionsType {
5
5
  path?: string | undefined;
6
- format?: `${FormatEnum}` | undefined;
7
- };
6
+ format?: FormatEnum | undefined;
7
+ }
8
8
  /**
9
9
  * @class FsWriter
10
10
  * @implements WriterInterface
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "qase-javascript-commons",
3
- "version": "2.2.19",
3
+ "version": "2.3.1",
4
4
  "description": "Qase JS Reporters",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -32,7 +32,8 @@
32
32
  "lodash.merge": "^4.6.2",
33
33
  "lodash.mergewith": "^4.6.2",
34
34
  "mime-types": "^2.1.33",
35
- "qaseio": "~2.4.0",
35
+ "qase-api-client": "~1.0.1",
36
+ "qase-api-v2-client": "~1.0.1",
36
37
  "strip-ansi": "^6.0.1",
37
38
  "uuid": "^9.0.0",
38
39
  "async-mutex": "~0.5.0"
@@ -1,26 +0,0 @@
1
- /// <reference types="node" />
2
- import { ReadableOptions } from 'stream';
3
- import FormData from 'form-data';
4
- type ReadableOptionsType = {
5
- [K in keyof ReadableOptions]?: undefined extends ReadableOptions[K] ? never : ReadableOptions[K];
6
- };
7
- export interface OptionsInterface extends ReadableOptionsType {
8
- writable?: boolean;
9
- readable?: boolean;
10
- dataSize?: number;
11
- maxDataSize?: number;
12
- pauseStreams?: boolean;
13
- }
14
- /**
15
- * `FormData` with cryptographically strong random boundary
16
- *
17
- * @class CustomBoundaryFormData
18
- * @extends FormData
19
- */
20
- export declare class CustomBoundaryFormData extends FormData {
21
- /**
22
- * @param {OptionsInterface} options
23
- */
24
- constructor(options?: OptionsInterface);
25
- }
26
- export {};
@@ -1,30 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.CustomBoundaryFormData = void 0;
7
- const crypto_1 = __importDefault(require("crypto"));
8
- const form_data_1 = __importDefault(require("form-data"));
9
- /**
10
- * `FormData` with cryptographically strong random boundary
11
- *
12
- * @class CustomBoundaryFormData
13
- * @extends FormData
14
- */
15
- class CustomBoundaryFormData extends form_data_1.default {
16
- /**
17
- * @param {OptionsInterface} options
18
- */
19
- constructor(options) {
20
- super(options);
21
- try {
22
- const bytes = crypto_1.default.randomBytes(12);
23
- this.setBoundary(bytes.toString('hex').padStart(50, '-'));
24
- }
25
- catch (e) {
26
- // ignore crypto failures, the FormData will fall back to the `Math.random`
27
- }
28
- }
29
- }
30
- exports.CustomBoundaryFormData = CustomBoundaryFormData;