qase-javascript-commons 2.2.18 → 2.3.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/changelog.md +21 -15
- package/dist/client/clientV1.d.ts +31 -0
- package/dist/client/clientV1.js +177 -0
- package/dist/client/clientV2.d.ts +26 -0
- package/dist/client/clientV2.js +197 -0
- package/dist/client/dateUtils.d.ts +2 -0
- package/dist/client/dateUtils.js +21 -0
- package/dist/client/interface.d.ts +6 -0
- package/dist/client/interface.js +2 -0
- package/dist/config/config-validation-schema.js +0 -22
- package/dist/env/env-enum.d.ts +1 -2
- package/dist/env/env-enum.js +0 -1
- package/dist/env/env-to-config.js +0 -1
- package/dist/env/env-type.d.ts +2 -3
- package/dist/env/env-validation-schema.js +0 -4
- package/dist/formatter/json-formatter.d.ts +2 -2
- package/dist/formatter/jsonp-formatter.d.ts +2 -2
- package/dist/models/attachment.d.ts +2 -2
- package/dist/models/config/TestOpsOptionsType.d.ts +25 -0
- package/dist/models/config/TestOpsOptionsType.js +2 -0
- package/dist/models/execution-sum.d.ts +2 -2
- package/dist/models/host-data.d.ts +2 -1
- package/dist/models/report.d.ts +3 -3
- package/dist/models/short-result.d.ts +2 -2
- package/dist/models/stats.d.ts +2 -2
- package/dist/models/test-result.d.ts +6 -6
- package/dist/options/options-type.d.ts +2 -6
- package/dist/qase.d.ts +1 -0
- package/dist/qase.js +16 -53
- package/dist/reporters/index.d.ts +1 -1
- package/dist/reporters/testops-reporter.d.ts +8 -161
- package/dist/reporters/testops-reporter.js +24 -537
- package/dist/state/state.js +1 -0
- package/dist/steps/step.d.ts +1 -1
- package/dist/steps/step.js +2 -2
- package/dist/utils/hostData.js +6 -3
- package/dist/utils/logger.js +17 -23
- package/dist/writer/fs-writer.d.ts +3 -3
- package/package.json +3 -2
- package/dist/utils/custom-boundary.d.ts +0 -26
- package/dist/utils/custom-boundary.js +0 -30
package/dist/utils/logger.js
CHANGED
|
@@ -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
|
|
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
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
const
|
|
98
|
-
|
|
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
|
|
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 (
|
|
111
|
-
return
|
|
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
|
|
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
|
|
4
|
+
export interface FsWriterOptionsType {
|
|
5
5
|
path?: string | undefined;
|
|
6
|
-
format?:
|
|
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.
|
|
3
|
+
"version": "2.3.0",
|
|
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
|
-
"
|
|
35
|
+
"qase-api-client": "~1.0.0",
|
|
36
|
+
"qase-api-v2-client": "~1.0.0",
|
|
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;
|