@testomatio/reporter 2.1.0-beta-nightwatch → 2.1.0-beta.2-codeceptjs
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 +1 -0
- package/lib/adapter/codecept.js +288 -202
- package/lib/adapter/cypress-plugin/index.js +0 -2
- package/lib/adapter/mocha.js +0 -1
- package/lib/adapter/nightwatch.js +5 -5
- package/lib/adapter/playwright.js +11 -3
- package/lib/adapter/webdriver.d.ts +1 -1
- package/lib/adapter/webdriver.js +18 -8
- package/lib/bin/cli.js +73 -8
- package/lib/bin/reportXml.js +4 -2
- package/lib/bin/startTest.js +3 -2
- package/lib/bin/uploadArtifacts.js +5 -4
- package/lib/client.js +31 -10
- package/lib/data-storage.d.ts +5 -5
- package/lib/data-storage.js +23 -13
- package/lib/junit-adapter/csharp.d.ts +1 -0
- package/lib/junit-adapter/csharp.js +11 -1
- package/lib/pipe/bitbucket.d.ts +2 -0
- package/lib/pipe/bitbucket.js +38 -26
- package/lib/pipe/debug.js +27 -6
- package/lib/pipe/github.d.ts +2 -2
- package/lib/pipe/github.js +35 -3
- package/lib/pipe/gitlab.d.ts +2 -0
- package/lib/pipe/gitlab.js +27 -9
- package/lib/pipe/html.js +0 -3
- package/lib/pipe/index.js +17 -7
- package/lib/pipe/testomatio.d.ts +3 -2
- package/lib/pipe/testomatio.js +85 -75
- package/lib/replay.d.ts +31 -0
- package/lib/replay.js +259 -0
- package/lib/reporter-functions.d.ts +7 -0
- package/lib/reporter-functions.js +36 -0
- package/lib/reporter.d.ts +15 -12
- package/lib/reporter.js +4 -1
- package/lib/services/artifacts.d.ts +1 -1
- package/lib/services/index.d.ts +2 -0
- package/lib/services/index.js +2 -0
- package/lib/services/key-values.d.ts +1 -1
- package/lib/services/labels.d.ts +22 -0
- package/lib/services/labels.js +62 -0
- package/lib/services/logger.d.ts +1 -1
- package/lib/services/logger.js +1 -2
- package/lib/template/testomatio.hbs +443 -68
- package/lib/uploader.js +10 -6
- package/lib/utils/constants.d.ts +12 -0
- package/lib/utils/constants.js +15 -0
- package/lib/utils/utils.d.ts +10 -1
- package/lib/utils/utils.js +70 -22
- package/lib/xmlReader.js +57 -19
- package/package.json +16 -11
- package/src/adapter/codecept.js +320 -214
- package/src/adapter/cypress-plugin/index.js +0 -2
- package/src/adapter/mocha.js +0 -1
- package/src/adapter/nightwatch.js +1 -1
- package/src/adapter/playwright.js +10 -7
- package/src/adapter/webdriver.js +13 -5
- package/src/bin/cli.js +78 -7
- package/src/bin/reportXml.js +4 -1
- package/src/bin/startTest.js +2 -1
- package/src/bin/uploadArtifacts.js +2 -1
- package/src/client.js +28 -5
- package/src/data-storage.js +6 -6
- package/src/junit-adapter/csharp.js +13 -1
- package/src/pipe/bitbucket.js +22 -24
- package/src/pipe/debug.js +26 -5
- package/src/pipe/github.js +1 -2
- package/src/pipe/gitlab.js +27 -9
- package/src/pipe/html.js +1 -4
- package/src/pipe/testomatio.js +112 -107
- package/src/replay.js +268 -0
- package/src/reporter-functions.js +41 -0
- package/src/reporter.js +3 -0
- package/src/services/index.js +2 -0
- package/src/services/labels.js +59 -0
- package/src/services/logger.js +1 -2
- package/src/template/testomatio.hbs +443 -68
- package/src/uploader.js +11 -6
- package/src/utils/constants.js +12 -0
- package/src/utils/utils.js +67 -15
- package/src/xmlReader.js +73 -18
package/lib/pipe/bitbucket.js
CHANGED
|
@@ -15,13 +15,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|
|
15
15
|
}) : function(o, v) {
|
|
16
16
|
o["default"] = v;
|
|
17
17
|
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
};
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
25
35
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
36
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
37
|
};
|
|
@@ -30,7 +40,7 @@ exports.BitbucketPipe = void 0;
|
|
|
30
40
|
const constants_js_1 = require("../constants.js");
|
|
31
41
|
const utils_js_1 = require("../utils/utils.js");
|
|
32
42
|
const pipe_utils_js_1 = require("../utils/pipe_utils.js");
|
|
33
|
-
const
|
|
43
|
+
const gaxios_1 = require("gaxios");
|
|
34
44
|
const picocolors_1 = __importDefault(require("picocolors"));
|
|
35
45
|
const humanize_duration_1 = __importDefault(require("humanize-duration"));
|
|
36
46
|
const lodash_merge_1 = __importDefault(require("lodash.merge"));
|
|
@@ -59,6 +69,13 @@ class BitbucketPipe {
|
|
|
59
69
|
return;
|
|
60
70
|
}
|
|
61
71
|
this.isEnabled = true;
|
|
72
|
+
this.client = new gaxios_1.Gaxios({
|
|
73
|
+
baseURL: 'https://api.bitbucket.org/2.0',
|
|
74
|
+
headers: {
|
|
75
|
+
'Content-Type': 'application/json',
|
|
76
|
+
'Authorization': `Bearer ${this.token}`
|
|
77
|
+
}
|
|
78
|
+
});
|
|
62
79
|
debug('Bitbucket Pipe: Enabled');
|
|
63
80
|
}
|
|
64
81
|
async cleanLog(log) {
|
|
@@ -158,18 +175,17 @@ class BitbucketPipe {
|
|
|
158
175
|
}
|
|
159
176
|
// Construct Bitbucket API URL for comments
|
|
160
177
|
// eslint-disable-next-line max-len
|
|
161
|
-
const commentsRequestURL =
|
|
178
|
+
const commentsRequestURL = `/repositories/${this.ENV.BITBUCKET_WORKSPACE}/${this.ENV.BITBUCKET_REPO_SLUG}/pullrequests/${this.ENV.BITBUCKET_PR_ID}/comments`;
|
|
162
179
|
// Delete previous report
|
|
163
|
-
await deletePreviousReport(
|
|
180
|
+
await deletePreviousReport(this.client, commentsRequestURL, this.hiddenCommentData);
|
|
164
181
|
// Add current report
|
|
165
182
|
debug(`Adding comment via URL: ${commentsRequestURL}`);
|
|
166
183
|
debug(`Final Bitbucket API call body: ${body}`);
|
|
167
184
|
try {
|
|
168
|
-
const addCommentResponse = await
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
},
|
|
185
|
+
const addCommentResponse = await this.client.request({
|
|
186
|
+
method: 'POST',
|
|
187
|
+
url: commentsRequestURL,
|
|
188
|
+
data: { content: { raw: body } }
|
|
173
189
|
});
|
|
174
190
|
const commentID = addCommentResponse.data.id;
|
|
175
191
|
// eslint-disable-next-line max-len
|
|
@@ -188,17 +204,15 @@ class BitbucketPipe {
|
|
|
188
204
|
updateRun() { }
|
|
189
205
|
}
|
|
190
206
|
exports.BitbucketPipe = BitbucketPipe;
|
|
191
|
-
async function deletePreviousReport(
|
|
207
|
+
async function deletePreviousReport(client, commentsRequestURL, hiddenCommentData) {
|
|
192
208
|
if (process.env.BITBUCKET_KEEP_OUTDATED_REPORTS)
|
|
193
209
|
return;
|
|
194
210
|
// Get comments
|
|
195
211
|
let comments = [];
|
|
196
212
|
try {
|
|
197
|
-
const response = await
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
'Content-Type': 'application/json',
|
|
201
|
-
},
|
|
213
|
+
const response = await client.request({
|
|
214
|
+
method: 'GET',
|
|
215
|
+
url: commentsRequestURL
|
|
202
216
|
});
|
|
203
217
|
comments = response.data.values;
|
|
204
218
|
}
|
|
@@ -213,11 +227,9 @@ async function deletePreviousReport(axiosInstance, commentsRequestURL, hiddenCom
|
|
|
213
227
|
try {
|
|
214
228
|
// Delete previous comment
|
|
215
229
|
const deleteCommentURL = `${commentsRequestURL}/${comment.id}`;
|
|
216
|
-
await
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
'Content-Type': 'application/json',
|
|
220
|
-
},
|
|
230
|
+
await client.request({
|
|
231
|
+
method: 'DELETE',
|
|
232
|
+
url: deleteCommentURL
|
|
221
233
|
});
|
|
222
234
|
}
|
|
223
235
|
catch (e) {
|
package/lib/pipe/debug.js
CHANGED
|
@@ -27,7 +27,21 @@ class DebugPipe {
|
|
|
27
27
|
this.logFilePath = path_1.default.join(os_1.default.tmpdir(), `testomatio.debug.${Date.now()}.json`);
|
|
28
28
|
debug('Creating debug file:', this.logFilePath);
|
|
29
29
|
fs_1.default.writeFileSync(this.logFilePath, '');
|
|
30
|
-
|
|
30
|
+
// Create symlink to ensure consistent path to latest debug file
|
|
31
|
+
const symlinkPath = path_1.default.join(os_1.default.tmpdir(), 'testomatio.debug.latest.json');
|
|
32
|
+
try {
|
|
33
|
+
// Remove existing symlink if it exists
|
|
34
|
+
if (fs_1.default.existsSync(symlinkPath)) {
|
|
35
|
+
fs_1.default.unlinkSync(symlinkPath);
|
|
36
|
+
}
|
|
37
|
+
// Create new symlink pointing to the timestamped debug file
|
|
38
|
+
fs_1.default.symlinkSync(this.logFilePath, symlinkPath);
|
|
39
|
+
debug('Created symlink:', symlinkPath, '->', this.logFilePath);
|
|
40
|
+
}
|
|
41
|
+
catch (err) {
|
|
42
|
+
debug('Failed to create symlink:', err.message);
|
|
43
|
+
}
|
|
44
|
+
console.log(constants_js_1.APP_PREFIX, '🪲 Debug file created');
|
|
31
45
|
this.testomatioEnvVars = Object.keys(process.env)
|
|
32
46
|
.filter(key => key.startsWith('TESTOMATIO_'))
|
|
33
47
|
.reduce((acc, key) => {
|
|
@@ -74,8 +88,12 @@ class DebugPipe {
|
|
|
74
88
|
async addTest(data) {
|
|
75
89
|
if (!this.isEnabled)
|
|
76
90
|
return;
|
|
77
|
-
if (!this.batch.isEnabled)
|
|
78
|
-
|
|
91
|
+
if (!this.batch.isEnabled) {
|
|
92
|
+
const logData = { action: 'addTest', testId: data };
|
|
93
|
+
if (this.store.runId)
|
|
94
|
+
logData.runId = this.store.runId;
|
|
95
|
+
this.logToFile(logData);
|
|
96
|
+
}
|
|
79
97
|
else
|
|
80
98
|
this.batch.tests.push(data);
|
|
81
99
|
if (!this.batch.intervalFunction)
|
|
@@ -88,16 +106,19 @@ class DebugPipe {
|
|
|
88
106
|
if (!this.batch.tests.length)
|
|
89
107
|
return;
|
|
90
108
|
const testsToSend = this.batch.tests.splice(0);
|
|
91
|
-
|
|
109
|
+
const logData = { action: 'addTestsBatch', tests: testsToSend };
|
|
110
|
+
if (this.store.runId)
|
|
111
|
+
logData.runId = this.store.runId;
|
|
112
|
+
this.logToFile(logData);
|
|
92
113
|
}
|
|
93
114
|
async finishRun(params) {
|
|
94
115
|
if (!this.isEnabled)
|
|
95
116
|
return;
|
|
96
|
-
this.logToFile({ actions: 'finishRun', params });
|
|
97
117
|
await this.batchUpload();
|
|
98
118
|
if (this.batch.intervalFunction)
|
|
99
119
|
clearInterval(this.batch.intervalFunction);
|
|
100
|
-
|
|
120
|
+
this.logToFile({ action: 'finishRun', params });
|
|
121
|
+
console.log(constants_js_1.APP_PREFIX, '🪲 Debug Saved to', this.logFilePath);
|
|
101
122
|
}
|
|
102
123
|
toString() {
|
|
103
124
|
return 'Debug Reporter';
|
package/lib/pipe/github.d.ts
CHANGED
|
@@ -23,8 +23,8 @@ declare class GitHubPipe implements Pipe {
|
|
|
23
23
|
createRun(): Promise<void>;
|
|
24
24
|
addTest(test: any): void;
|
|
25
25
|
finishRun(runParams: any): Promise<void>;
|
|
26
|
-
octokit: import("@octokit/core").Octokit & {
|
|
26
|
+
octokit: import("@octokit/core").Octokit & import("@octokit/plugin-rest-endpoint-methods/dist-types/generated/method-types.js").RestEndpointMethods & import("@octokit/plugin-rest-endpoint-methods").Api & {
|
|
27
27
|
paginate: import("@octokit/plugin-paginate-rest").PaginateInterface;
|
|
28
|
-
}
|
|
28
|
+
};
|
|
29
29
|
toString(): string;
|
|
30
30
|
}
|
package/lib/pipe/github.js
CHANGED
|
@@ -1,4 +1,37 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
2
35
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
36
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
37
|
};
|
|
@@ -8,7 +41,6 @@ const path_1 = __importDefault(require("path"));
|
|
|
8
41
|
const picocolors_1 = __importDefault(require("picocolors"));
|
|
9
42
|
const humanize_duration_1 = __importDefault(require("humanize-duration"));
|
|
10
43
|
const lodash_merge_1 = __importDefault(require("lodash.merge"));
|
|
11
|
-
const rest_1 = require("@octokit/rest");
|
|
12
44
|
const constants_js_1 = require("../constants.js");
|
|
13
45
|
const utils_js_1 = require("../utils/utils.js");
|
|
14
46
|
const pipe_utils_js_1 = require("../utils/pipe_utils.js");
|
|
@@ -62,7 +94,8 @@ class GitHubPipe {
|
|
|
62
94
|
return;
|
|
63
95
|
if (runParams.tests)
|
|
64
96
|
runParams.tests.forEach(t => this.addTest(t));
|
|
65
|
-
|
|
97
|
+
const { Octokit } = await Promise.resolve().then(() => __importStar(require('@octokit/rest')));
|
|
98
|
+
this.octokit = new Octokit({
|
|
66
99
|
auth: this.token,
|
|
67
100
|
});
|
|
68
101
|
const [owner, repo] = (this.repo || '').split('/');
|
|
@@ -130,7 +163,6 @@ class GitHubPipe {
|
|
|
130
163
|
if (this.tests.length > 0) {
|
|
131
164
|
body += '\n<details>\n<summary><h3>🐢 Slowest Tests</h3></summary>\n\n';
|
|
132
165
|
body += this.tests
|
|
133
|
-
// eslint-disable-next-line no-unsafe-optional-chaining
|
|
134
166
|
.sort((a, b) => b?.run_time - a?.run_time)
|
|
135
167
|
.slice(0, 5)
|
|
136
168
|
.map(t => `* ${(0, pipe_utils_js_1.fullName)(t)} (${(0, humanize_duration_1.default)(parseFloat(t.run_time))})`)
|
package/lib/pipe/gitlab.d.ts
CHANGED
|
@@ -14,6 +14,7 @@ declare class GitLabPipe {
|
|
|
14
14
|
tests: any[];
|
|
15
15
|
token: any;
|
|
16
16
|
hiddenCommentData: string;
|
|
17
|
+
client: Gaxios;
|
|
17
18
|
prepareRun(): Promise<void>;
|
|
18
19
|
createRun(): Promise<void>;
|
|
19
20
|
addTest(test: any): void;
|
|
@@ -21,3 +22,4 @@ declare class GitLabPipe {
|
|
|
21
22
|
toString(): string;
|
|
22
23
|
updateRun(): void;
|
|
23
24
|
}
|
|
25
|
+
import { Gaxios } from 'gaxios';
|
package/lib/pipe/gitlab.js
CHANGED
|
@@ -4,7 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const debug_1 = __importDefault(require("debug"));
|
|
7
|
-
const
|
|
7
|
+
const gaxios_1 = require("gaxios");
|
|
8
8
|
const picocolors_1 = __importDefault(require("picocolors"));
|
|
9
9
|
const humanize_duration_1 = __importDefault(require("humanize-duration"));
|
|
10
10
|
const lodash_merge_1 = __importDefault(require("lodash.merge"));
|
|
@@ -39,6 +39,12 @@ class GitLabPipe {
|
|
|
39
39
|
return;
|
|
40
40
|
}
|
|
41
41
|
this.isEnabled = true;
|
|
42
|
+
this.client = new gaxios_1.Gaxios({
|
|
43
|
+
baseURL: 'https://gitlab.com/api/v4',
|
|
44
|
+
headers: {
|
|
45
|
+
'Content-Type': 'application/json',
|
|
46
|
+
}
|
|
47
|
+
});
|
|
42
48
|
debug('GitLab Pipe: Enabled');
|
|
43
49
|
}
|
|
44
50
|
// TODO: to using SET opts as argument => prepareRun(opts)
|
|
@@ -119,7 +125,6 @@ class GitLabPipe {
|
|
|
119
125
|
if (this.tests.length > 0) {
|
|
120
126
|
body += '\n<details>\n<summary><h3>🐢 Slowest Tests</h3></summary>\n\n';
|
|
121
127
|
body += this.tests
|
|
122
|
-
// eslint-disable-next-line no-unsafe-optional-chaining
|
|
123
128
|
.sort((a, b) => b?.run_time - a?.run_time)
|
|
124
129
|
.slice(0, 5)
|
|
125
130
|
.map(t => `* ${(0, pipe_utils_js_1.fullName)(t)} (${(0, humanize_duration_1.default)(parseFloat(t.run_time))})`)
|
|
@@ -127,13 +132,18 @@ class GitLabPipe {
|
|
|
127
132
|
body += '\n</details>';
|
|
128
133
|
}
|
|
129
134
|
// eslint-disable-next-line max-len
|
|
130
|
-
const commentsRequestURL =
|
|
135
|
+
const commentsRequestURL = `/projects/${this.ENV.CI_PROJECT_ID}/merge_requests/${this.ENV.CI_MERGE_REQUEST_IID}/notes`;
|
|
131
136
|
// delete previous report
|
|
132
|
-
await deletePreviousReport(
|
|
137
|
+
await deletePreviousReport(this.client, commentsRequestURL, this.hiddenCommentData, this.token);
|
|
133
138
|
// add current report
|
|
134
139
|
debug(`Adding comment via url: ${commentsRequestURL}`);
|
|
135
140
|
try {
|
|
136
|
-
const addCommentResponse = await
|
|
141
|
+
const addCommentResponse = await this.client.request({
|
|
142
|
+
method: 'POST',
|
|
143
|
+
url: commentsRequestURL,
|
|
144
|
+
params: { access_token: this.token },
|
|
145
|
+
data: { body }
|
|
146
|
+
});
|
|
137
147
|
const commentID = addCommentResponse.data.id;
|
|
138
148
|
// eslint-disable-next-line max-len
|
|
139
149
|
const commentURL = `${this.ENV.CI_PROJECT_URL}/-/merge_requests/${this.ENV.CI_MERGE_REQUEST_IID}#note_${commentID}`;
|
|
@@ -150,13 +160,17 @@ class GitLabPipe {
|
|
|
150
160
|
}
|
|
151
161
|
updateRun() { }
|
|
152
162
|
}
|
|
153
|
-
async function deletePreviousReport(
|
|
163
|
+
async function deletePreviousReport(client, commentsRequestURL, hiddenCommentData, token) {
|
|
154
164
|
if (process.env.GITLAB_KEEP_OUTDATED_REPORTS)
|
|
155
165
|
return;
|
|
156
166
|
// get comments
|
|
157
167
|
let comments = [];
|
|
158
168
|
try {
|
|
159
|
-
const response = await
|
|
169
|
+
const response = await client.request({
|
|
170
|
+
method: 'GET',
|
|
171
|
+
url: commentsRequestURL,
|
|
172
|
+
params: { access_token: token }
|
|
173
|
+
});
|
|
160
174
|
comments = response.data;
|
|
161
175
|
}
|
|
162
176
|
catch (e) {
|
|
@@ -169,8 +183,12 @@ async function deletePreviousReport(axiosInstance, commentsRequestURL, hiddenCom
|
|
|
169
183
|
if (comment.body.includes(hiddenCommentData)) {
|
|
170
184
|
try {
|
|
171
185
|
// delete previous comment
|
|
172
|
-
const deleteCommentURL = `${commentsRequestURL}/${comment.id}
|
|
173
|
-
await
|
|
186
|
+
const deleteCommentURL = `${commentsRequestURL}/${comment.id}`;
|
|
187
|
+
await client.request({
|
|
188
|
+
method: 'DELETE',
|
|
189
|
+
url: deleteCommentURL,
|
|
190
|
+
params: { access_token: token }
|
|
191
|
+
});
|
|
174
192
|
}
|
|
175
193
|
catch (e) {
|
|
176
194
|
console.warn(`Can't delete previously added comment with testomat.io report. Ignore.`);
|
package/lib/pipe/html.js
CHANGED
|
@@ -193,7 +193,6 @@ class HtmlPipe {
|
|
|
193
193
|
<option value="1">25</option>
|
|
194
194
|
<option value="2">50</option>
|
|
195
195
|
</select>`));
|
|
196
|
-
/* eslint-disable */
|
|
197
196
|
handlebars_1.default.registerHelper('emptyDataComponent', () => {
|
|
198
197
|
const svgFilePath = path_1.default.join(__dirname, '..', 'template', 'emptyData.svg');
|
|
199
198
|
const svgContent = fs_1.default.readFileSync(svgFilePath, 'utf8');
|
|
@@ -207,7 +206,6 @@ class HtmlPipe {
|
|
|
207
206
|
</div>
|
|
208
207
|
<div>`);
|
|
209
208
|
});
|
|
210
|
-
/* eslint-enable */
|
|
211
209
|
handlebars_1.default.registerHelper('pageDispleyElements', tests => {
|
|
212
210
|
// We wrapp the lines to the HTML format we need
|
|
213
211
|
const totalTests = JSON.parse(JSON.stringify(tests)
|
|
@@ -235,7 +233,6 @@ class HtmlPipe {
|
|
|
235
233
|
}
|
|
236
234
|
statuses.forEach(status => {
|
|
237
235
|
for (const option in paginationOptions) {
|
|
238
|
-
// eslint-disable-next-line no-prototype-builtins
|
|
239
236
|
if (paginationOptions.hasOwnProperty(option)) {
|
|
240
237
|
const pageSize = paginationOptions[option];
|
|
241
238
|
let filteredItems = totalTests;
|
package/lib/pipe/index.js
CHANGED
|
@@ -15,13 +15,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|
|
15
15
|
}) : function(o, v) {
|
|
16
16
|
o["default"] = v;
|
|
17
17
|
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
};
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
25
35
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
36
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
37
|
};
|
package/lib/pipe/testomatio.d.ts
CHANGED
|
@@ -31,7 +31,7 @@ declare class TestomatioPipe implements Pipe {
|
|
|
31
31
|
groupTitle: any;
|
|
32
32
|
env: string;
|
|
33
33
|
label: string;
|
|
34
|
-
|
|
34
|
+
client: Gaxios;
|
|
35
35
|
proceed: string;
|
|
36
36
|
jiraId: string;
|
|
37
37
|
runId: any;
|
|
@@ -59,7 +59,7 @@ declare class TestomatioPipe implements Pipe {
|
|
|
59
59
|
/**
|
|
60
60
|
* Adds a test to the batch uploader (or reports a single test if batch uploading is disabled)
|
|
61
61
|
*/
|
|
62
|
-
addTest(data: any): void
|
|
62
|
+
addTest(data: any): Promise<void | import("gaxios").GaxiosResponse<any>>;
|
|
63
63
|
/**
|
|
64
64
|
* @param {import('../../types/types.js').RunData} params
|
|
65
65
|
* @returns
|
|
@@ -68,3 +68,4 @@ declare class TestomatioPipe implements Pipe {
|
|
|
68
68
|
toString(): string;
|
|
69
69
|
#private;
|
|
70
70
|
}
|
|
71
|
+
import { Gaxios } from 'gaxios';
|