qase-javascript-commons 2.2.11 → 2.2.13
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
CHANGED
|
@@ -1,3 +1,16 @@
|
|
|
1
|
+
# qase-javascript-commons@2.2.13
|
|
2
|
+
|
|
3
|
+
## What's new
|
|
4
|
+
|
|
5
|
+
Enhanced error messages for 403 status code responses to provide clearer and more informative feedback.
|
|
6
|
+
|
|
7
|
+
# qase-javascript-commons@2.2.12
|
|
8
|
+
|
|
9
|
+
## What's new
|
|
10
|
+
|
|
11
|
+
Added a mutex to ensure correct result submission when running tests in multiple threads, preventing potential
|
|
12
|
+
duplication.
|
|
13
|
+
|
|
1
14
|
# qase-javascript-commons@2.2.11
|
|
2
15
|
|
|
3
16
|
## What's new
|
|
@@ -12,6 +12,7 @@ const models_1 = require("../models");
|
|
|
12
12
|
const qase_error_1 = require("../utils/qase-error");
|
|
13
13
|
const axios_1 = __importDefault(require("axios"));
|
|
14
14
|
const state_1 = require("../state/state");
|
|
15
|
+
const async_mutex_1 = require("async-mutex");
|
|
15
16
|
const defaultChunkSize = 200;
|
|
16
17
|
/**
|
|
17
18
|
* @class TestOpsReporter
|
|
@@ -109,6 +110,7 @@ class TestOpsReporter extends abstract_reporter_1.AbstractReporter {
|
|
|
109
110
|
* @private
|
|
110
111
|
*/
|
|
111
112
|
isTestRunReady = false;
|
|
113
|
+
mutex = new async_mutex_1.Mutex();
|
|
112
114
|
/**
|
|
113
115
|
* @param {LoggerInterface} logger
|
|
114
116
|
* @param {ReporterOptionsType & TestOpsOptionsType} options
|
|
@@ -151,15 +153,21 @@ class TestOpsReporter extends abstract_reporter_1.AbstractReporter {
|
|
|
151
153
|
this.showLink(id, result.title);
|
|
152
154
|
}
|
|
153
155
|
}
|
|
154
|
-
await
|
|
155
|
-
|
|
156
|
-
|
|
156
|
+
const release = await this.mutex.acquire();
|
|
157
|
+
try {
|
|
158
|
+
await super.addTestResult(result);
|
|
159
|
+
if (!this.isTestRunReady) {
|
|
160
|
+
return;
|
|
161
|
+
}
|
|
162
|
+
const countOfResults = this.batchSize + this.firstIndex;
|
|
163
|
+
if (this.results.length >= countOfResults) {
|
|
164
|
+
const firstIndex = this.firstIndex;
|
|
165
|
+
this.firstIndex = countOfResults;
|
|
166
|
+
await this.publishResults(this.results.slice(firstIndex, countOfResults));
|
|
167
|
+
}
|
|
157
168
|
}
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
const firstIndex = this.firstIndex;
|
|
161
|
-
this.firstIndex = countOfResults;
|
|
162
|
-
await this.publishResults(this.results.slice(firstIndex, countOfResults));
|
|
169
|
+
finally {
|
|
170
|
+
release();
|
|
163
171
|
}
|
|
164
172
|
}
|
|
165
173
|
/**
|
|
@@ -238,7 +246,13 @@ class TestOpsReporter extends abstract_reporter_1.AbstractReporter {
|
|
|
238
246
|
* @returns {Promise<void>}
|
|
239
247
|
*/
|
|
240
248
|
async publish() {
|
|
241
|
-
await this.
|
|
249
|
+
const release = await this.mutex.acquire();
|
|
250
|
+
try {
|
|
251
|
+
await this.sendResults();
|
|
252
|
+
}
|
|
253
|
+
finally {
|
|
254
|
+
release();
|
|
255
|
+
}
|
|
242
256
|
await this.complete();
|
|
243
257
|
}
|
|
244
258
|
/**
|
|
@@ -628,6 +642,10 @@ class TestOpsReporter extends abstract_reporter_1.AbstractReporter {
|
|
|
628
642
|
if (error.response?.status === 404) {
|
|
629
643
|
return new qase_error_1.QaseError(message + ': Not found.');
|
|
630
644
|
}
|
|
645
|
+
if (error.response?.status === 403) {
|
|
646
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access,@typescript-eslint/restrict-template-expressions
|
|
647
|
+
return new qase_error_1.QaseError(`${message}: ${error.response?.data?.errorMessage}`);
|
|
648
|
+
}
|
|
631
649
|
if (error.response?.status === 400 || error.response?.status === 422) {
|
|
632
650
|
return new qase_error_1.QaseError(message + ': Bad request. Body: \n ' + JSON.stringify(model));
|
|
633
651
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "qase-javascript-commons",
|
|
3
|
-
"version": "2.2.
|
|
3
|
+
"version": "2.2.13",
|
|
4
4
|
"description": "Qase JS Reporters",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
@@ -34,7 +34,8 @@
|
|
|
34
34
|
"mime-types": "^2.1.33",
|
|
35
35
|
"qaseio": "~2.4.0",
|
|
36
36
|
"strip-ansi": "^6.0.1",
|
|
37
|
-
"uuid": "^9.0.0"
|
|
37
|
+
"uuid": "^9.0.0",
|
|
38
|
+
"async-mutex": "~0.5.0"
|
|
38
39
|
},
|
|
39
40
|
"devDependencies": {
|
|
40
41
|
"@jest/globals": "^29.5.0",
|