@muuktest/amikoo-reporter 1.0.3 ā 1.0.5
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/dist/controlHubReporter.d.ts +2 -0
- package/dist/controlHubReporter.d.ts.map +1 -1
- package/dist/controlHubReporter.js +112 -45
- package/dist/controlHubReporter.js.map +1 -1
- package/dist/utils.d.ts +20 -0
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +132 -0
- package/dist/utils.js.map +1 -1
- package/dist/videoUtils.js +8 -8
- package/dist/videoUtils.js.map +1 -1
- package/package.json +1 -1
|
@@ -18,6 +18,8 @@ declare class MyReporter implements Reporter {
|
|
|
18
18
|
private access_token;
|
|
19
19
|
private owner;
|
|
20
20
|
private key;
|
|
21
|
+
private testsInfo;
|
|
22
|
+
private onBeginDonePromises;
|
|
21
23
|
onBegin(config: any, suite: any): Promise<void>;
|
|
22
24
|
onTestBegin(test: any): Promise<void>;
|
|
23
25
|
onError(error: any): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"controlHubReporter.d.ts","sourceRoot":"","sources":["../controlHub/controlHubReporter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAQrD,cAAM,UAAW,YAAW,QAAQ;IAElC,iBAAiB,EAAE,GAAG,EAAE,CAAM;IAC9B,MAAM,EAAE,GAAG,EAAE,CAAM;IACnB,QAAQ,EAAE,GAAG,CAAC;IACd,cAAc,EAAE,MAAM,CAAM;IAC5B,eAAe,EAAE,MAAM,CAAK;IAC5B,OAAO,EAAE,GAAG,EAAE,CAAM;IACpB,kBAAkB,EAAE,MAAM,CAAK;IAC/B,OAAO,EAAE,MAAM,CAAgB;IAC/B,gBAAgB,EAAE,OAAO,CAAS;IAClC,yBAAyB,EAAE,GAAG,EAAE,CAAM;IACtC,GAAG,EAAE,GAAG,CAAC;IACT,eAAe,EAAE,GAAG,EAAE,CAAM;IAE5B,OAAO,CAAC,YAAY,CAAU;IAC9B,OAAO,CAAC,MAAM,CAAU;IACxB,OAAO,CAAC,cAAc,CAAU;IAChC,OAAO,CAAC,YAAY,CAAU;IAC9B,OAAO,CAAC,KAAK,CAAU;IACvB,OAAO,CAAC,GAAG,CAAU;
|
|
1
|
+
{"version":3,"file":"controlHubReporter.d.ts","sourceRoot":"","sources":["../controlHub/controlHubReporter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAQrD,cAAM,UAAW,YAAW,QAAQ;IAElC,iBAAiB,EAAE,GAAG,EAAE,CAAM;IAC9B,MAAM,EAAE,GAAG,EAAE,CAAM;IACnB,QAAQ,EAAE,GAAG,CAAC;IACd,cAAc,EAAE,MAAM,CAAM;IAC5B,eAAe,EAAE,MAAM,CAAK;IAC5B,OAAO,EAAE,GAAG,EAAE,CAAM;IACpB,kBAAkB,EAAE,MAAM,CAAK;IAC/B,OAAO,EAAE,MAAM,CAAgB;IAC/B,gBAAgB,EAAE,OAAO,CAAS;IAClC,yBAAyB,EAAE,GAAG,EAAE,CAAM;IACtC,GAAG,EAAE,GAAG,CAAC;IACT,eAAe,EAAE,GAAG,EAAE,CAAM;IAE5B,OAAO,CAAC,YAAY,CAAU;IAC9B,OAAO,CAAC,MAAM,CAAU;IACxB,OAAO,CAAC,cAAc,CAAU;IAChC,OAAO,CAAC,YAAY,CAAU;IAC9B,OAAO,CAAC,KAAK,CAAU;IACvB,OAAO,CAAC,GAAG,CAAU;IACrB,OAAO,CAAC,SAAS,CAAa;IAC9B,OAAO,CAAC,mBAAmB,CAAuB;IAE5C,OAAO,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG;IA8C/B,WAAW,CAAC,IAAI,EAAE,GAAG;IAIrB,OAAO,CAAC,KAAK,EAAE,GAAG;IAalB,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG;IA4EhC,KAAK,CAAC,MAAM,EAAE,GAAG;CAuExB;AACD,eAAe,UAAU,CAAC"}
|
|
@@ -21,45 +21,59 @@ class MyReporter {
|
|
|
21
21
|
this.compilationError = false;
|
|
22
22
|
this.filesWithCompilationError = [];
|
|
23
23
|
this.testEndPromises = [];
|
|
24
|
+
this.testsInfo = [];
|
|
25
|
+
this.onBeginDonePromises = [];
|
|
24
26
|
}
|
|
25
27
|
async onBegin(config, suite) {
|
|
26
|
-
//
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
28
|
+
// Store initialization work as a promise that onTestEnd will await
|
|
29
|
+
const initPromise = (async () => {
|
|
30
|
+
try {
|
|
31
|
+
// We need to obtain a token from control hub so we can send API requests.
|
|
32
|
+
this.key = process.env.AMIKOO_KEY || '';
|
|
33
|
+
const tokenResponse = await apiUtils_1.api.post('/validate_key', '', { "key": this.key });
|
|
34
|
+
if (tokenResponse.success && tokenResponse.data) {
|
|
35
|
+
this.access_token = tokenResponse.data.access_token;
|
|
36
|
+
}
|
|
37
|
+
const context = await (0, gitUtils_1.getGitContext)(this.access_token);
|
|
38
|
+
this.repositoryId = context.repositoryId;
|
|
39
|
+
this.repositoryName = context.repositoryName;
|
|
40
|
+
this.branch = context.branch;
|
|
41
|
+
this.owner = context.owner;
|
|
42
|
+
if (!this.access_token) {
|
|
43
|
+
console.warn('\nā Warning: Failed to obtain access token');
|
|
44
|
+
console.warn(' Feedback data will not be sent to amikoo-reporter, and execution data will not be saved.\n');
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
// Get execution number and test information in parallel
|
|
48
|
+
const [executionData, testsInfo] = await Promise.all([
|
|
49
|
+
(0, utils_1.getExecutionNumber)(this.access_token),
|
|
50
|
+
(0, utils_1.getTestsInfo)(suite, this.access_token)
|
|
51
|
+
]);
|
|
52
|
+
if (executionData && testsInfo) {
|
|
53
|
+
this.executionNumber = executionData.executionNumber;
|
|
54
|
+
this.organizationId = executionData.organizationId;
|
|
55
|
+
this.testsInfo = testsInfo;
|
|
56
|
+
}
|
|
57
|
+
console.log(`\nš Starting test run`);
|
|
58
|
+
console.log(` Repository: ${this.repositoryName}`);
|
|
59
|
+
console.log(` Branch: ${this.branch}\n`);
|
|
60
|
+
}
|
|
48
61
|
}
|
|
49
|
-
|
|
50
|
-
console.error('
|
|
62
|
+
catch (error) {
|
|
63
|
+
console.error('\nā Error during reporter initialization:', error);
|
|
51
64
|
}
|
|
52
|
-
|
|
53
|
-
|
|
65
|
+
})();
|
|
66
|
+
this.onBeginDonePromises.push(initPromise);
|
|
54
67
|
}
|
|
55
68
|
async onTestBegin(test) {
|
|
56
|
-
console.log(`Starting test ${test.title}`);
|
|
69
|
+
console.log(` ā¶ Starting execution of test : ${test.title}`);
|
|
57
70
|
}
|
|
58
71
|
async onError(error) {
|
|
59
|
-
console.log("Tests generated an error during execution. Error = ", error);
|
|
60
72
|
const message = error?.message?.replace(/^(.*: )+/, '').trim();
|
|
61
73
|
this.compilationError = true;
|
|
74
|
+
console.error(`\nā Compilation error: ${message}`);
|
|
62
75
|
if (error?.location?.file) {
|
|
76
|
+
console.error(` File: ${error.location.file}\n`);
|
|
63
77
|
this.filesWithCompilationError.push({
|
|
64
78
|
"file": error.location.file,
|
|
65
79
|
"message": message,
|
|
@@ -67,20 +81,40 @@ class MyReporter {
|
|
|
67
81
|
}
|
|
68
82
|
}
|
|
69
83
|
async onTestEnd(test, result) {
|
|
70
|
-
|
|
71
|
-
|
|
84
|
+
// Wait for onBegin to complete before processing test results
|
|
85
|
+
try {
|
|
86
|
+
await Promise.all(this.onBeginDonePromises);
|
|
87
|
+
}
|
|
88
|
+
catch (error) {
|
|
89
|
+
console.error(' ā Error waiting for initialization:', error);
|
|
90
|
+
}
|
|
91
|
+
const statusIcon = result.status === 'passed' ? 'ā' : 'ā';
|
|
92
|
+
const statusText = result.status === 'passed' ? 'Passed' : 'Failed';
|
|
93
|
+
console.log(` ${statusIcon} Finished: ${test.title} (${statusText})`);
|
|
94
|
+
const promise = (async () => {
|
|
72
95
|
try {
|
|
96
|
+
// Normalize paths once for cross-platform compatibility (Windows backslashes ā forward slashes)
|
|
97
|
+
const normalizedFullPath = test.location.file.replace(/\\/g, '/');
|
|
98
|
+
const normalizedRelativePath = path_1.default.relative(process.cwd(), test.location.file).replace(/\\/g, '/');
|
|
73
99
|
// Get clean title path without project name and empty strings
|
|
74
100
|
const filePath = path_1.default.basename(test.location.file);
|
|
75
|
-
// Get the file location relative to the repository
|
|
76
|
-
const fullPath = test.location.file;
|
|
77
|
-
const repoIndex = fullPath.indexOf(this.repositoryName);
|
|
78
|
-
const fileLocation = fullPath.slice(repoIndex + this.repositoryName.length + 1);
|
|
79
101
|
// Get the full test title including parent suites
|
|
80
102
|
const fullTitle = await (0, utils_1.getSuiteNames)(test);
|
|
103
|
+
// Look up the test from API results by file path and title
|
|
104
|
+
const matchedTest = (0, utils_1.findTest)(this.testsInfo, normalizedFullPath, fullTitle);
|
|
105
|
+
// Use matched test filePath, or fall back to repo-relative path to avoid leaking absolute paths
|
|
106
|
+
const fileLocation = matchedTest ? matchedTest.filePath : normalizedRelativePath;
|
|
81
107
|
// Create a unique hash ID for the test using repository ID, file path, full title, and commit SHA
|
|
82
108
|
const rawIdentity = `${this.owner}/${this.repositoryId}:${fileLocation}:${fullTitle}`;
|
|
83
109
|
const testId = crypto_1.default.createHash('sha256').update(rawIdentity).digest('hex');
|
|
110
|
+
// Get the error message if the test failed
|
|
111
|
+
let errorData = {};
|
|
112
|
+
try {
|
|
113
|
+
errorData = (0, utils_1.extractErrorDetails)(result) || {};
|
|
114
|
+
}
|
|
115
|
+
catch {
|
|
116
|
+
// Silently ignore errors extracting error details - don't fail the reporter
|
|
117
|
+
}
|
|
84
118
|
const duration = parseInt(result.duration) / 1000;
|
|
85
119
|
const payload = {
|
|
86
120
|
hashId: testId,
|
|
@@ -94,7 +128,10 @@ class MyReporter {
|
|
|
94
128
|
fullTitle,
|
|
95
129
|
duration: duration,
|
|
96
130
|
executionAt: new Date().toISOString(),
|
|
97
|
-
result: result.status === "passed" ? true : false
|
|
131
|
+
result: result.status === "passed" ? true : false,
|
|
132
|
+
error: errorData,
|
|
133
|
+
systemOutput: (result.stdout) ? result.stdout.join(' ') : '',
|
|
134
|
+
systemError: (result.stderr) ? result.stderr.join(' ') : '',
|
|
98
135
|
};
|
|
99
136
|
this.testExecutionData.push(payload);
|
|
100
137
|
// Collect video for later batch processing
|
|
@@ -104,18 +141,21 @@ class MyReporter {
|
|
|
104
141
|
}
|
|
105
142
|
}
|
|
106
143
|
catch (error) {
|
|
107
|
-
console.
|
|
108
|
-
reject(error);
|
|
144
|
+
console.error(` ā Error processing test "${test.title}":`, error);
|
|
109
145
|
}
|
|
110
|
-
|
|
111
|
-
});
|
|
146
|
+
})();
|
|
112
147
|
// save the promise so the onEnd can wait for this code to complete.
|
|
113
148
|
this.testEndPromises.push(promise);
|
|
114
149
|
}
|
|
115
150
|
async onEnd(result) {
|
|
116
|
-
console.log('
|
|
117
|
-
|
|
118
|
-
|
|
151
|
+
console.log('\nā³ Waiting for all tests to complete...');
|
|
152
|
+
try {
|
|
153
|
+
await Promise.all([...this.onBeginDonePromises, ...this.testEndPromises]);
|
|
154
|
+
}
|
|
155
|
+
catch (error) {
|
|
156
|
+
console.error('ā Error waiting for test promises:', error);
|
|
157
|
+
}
|
|
158
|
+
console.log('ā All tests completed\n');
|
|
119
159
|
if (this.executionNumber) {
|
|
120
160
|
// Process videos and get presigned URLs
|
|
121
161
|
const videoResult = await (0, videoUtils_1.processVideos)(this.videos, this.organizationId, this.executionNumber, this.access_token);
|
|
@@ -133,14 +173,41 @@ class MyReporter {
|
|
|
133
173
|
// Send API to BE here
|
|
134
174
|
const feedbackResponse = await apiUtils_1.api.post('/execution/feedback', this.access_token, feedbackData);
|
|
135
175
|
if (feedbackResponse.success) {
|
|
136
|
-
console.log('Execution report sent successfully');
|
|
176
|
+
console.log('ā Execution report sent successfully\n');
|
|
177
|
+
// Check for warnings about tests not found
|
|
178
|
+
const responseData = feedbackResponse.data;
|
|
179
|
+
if (responseData?.testsNotFound?.length) {
|
|
180
|
+
console.warn(`ā ${responseData.warnings || 'Some tests were not found'}`);
|
|
181
|
+
responseData.testsNotFound.forEach((test) => {
|
|
182
|
+
console.warn(` ⢠${test.testName}`);
|
|
183
|
+
});
|
|
184
|
+
console.warn(' Please sync your repository to register these tests.\n');
|
|
185
|
+
}
|
|
137
186
|
}
|
|
138
187
|
else {
|
|
139
|
-
|
|
188
|
+
const errorData = (feedbackResponse.error || {});
|
|
189
|
+
console.error(`\nā Failed to send execution report\n`);
|
|
190
|
+
console.error(` ${errorData.message || errorData}\n`);
|
|
191
|
+
if (errorData.activeRepositories?.length) {
|
|
192
|
+
console.error(` Available repositories:`);
|
|
193
|
+
errorData.activeRepositories.forEach((repo) => {
|
|
194
|
+
console.error(` ⢠${repo.name} (${repo.id})`);
|
|
195
|
+
});
|
|
196
|
+
console.error('');
|
|
197
|
+
}
|
|
198
|
+
if (errorData.activeBranches?.length) {
|
|
199
|
+
console.error(` Available branches:`);
|
|
200
|
+
errorData.activeBranches.forEach((branch) => {
|
|
201
|
+
console.error(` ⢠${branch}`);
|
|
202
|
+
});
|
|
203
|
+
console.error('');
|
|
204
|
+
}
|
|
140
205
|
}
|
|
141
206
|
}
|
|
142
207
|
else {
|
|
143
|
-
console.warn('Execution number not available
|
|
208
|
+
console.warn('\nā Execution number not available');
|
|
209
|
+
console.warn(' Execution report will not be sent to amikoo-reporter.');
|
|
210
|
+
console.warn(' Execution data will not be saved.\n');
|
|
144
211
|
}
|
|
145
212
|
(0, utils_1.checkForUpdates)();
|
|
146
213
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"controlHubReporter.js","sourceRoot":"","sources":["../controlHub/controlHubReporter.ts"],"names":[],"mappings":";;;;;AACA,yCAA2C;AAC3C,yCAAiC;AACjC,6CAA6E;AAC7E,
|
|
1
|
+
{"version":3,"file":"controlHubReporter.js","sourceRoot":"","sources":["../controlHub/controlHubReporter.ts"],"names":[],"mappings":"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"}
|
package/dist/utils.d.ts
CHANGED
|
@@ -1,3 +1,23 @@
|
|
|
1
|
+
export declare function getExecutionNumber(accessToken: string): Promise<{
|
|
2
|
+
executionNumber: number;
|
|
3
|
+
organizationId: string;
|
|
4
|
+
} | null>;
|
|
5
|
+
export declare function getTestsInfo(suite: any, accessToken: string): Promise<any[]>;
|
|
6
|
+
export declare function buildTestData(suite: any): Promise<Array<{
|
|
7
|
+
file: string;
|
|
8
|
+
name: string;
|
|
9
|
+
}>>;
|
|
10
|
+
export declare function findTest(tests: any[], fullFilePath: string, fullTitlePath: string): any | undefined;
|
|
1
11
|
export declare function getSuiteNames(test: any): Promise<string>;
|
|
2
12
|
export declare function checkForUpdates(): Promise<void>;
|
|
13
|
+
export declare function stripAnsi(str: string | undefined): string;
|
|
14
|
+
export declare function extractErrorDetails(result: any): {
|
|
15
|
+
message: string;
|
|
16
|
+
failedStep: {
|
|
17
|
+
title: string;
|
|
18
|
+
location: import("playwright/types/test").Location;
|
|
19
|
+
error: string;
|
|
20
|
+
stack: string;
|
|
21
|
+
};
|
|
22
|
+
};
|
|
3
23
|
//# sourceMappingURL=utils.d.ts.map
|
package/dist/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../controlHub/utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../controlHub/utils.ts"],"names":[],"mappings":"AAeA,wBAAsB,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,eAAe,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAAC,CAmBjI;AASD,wBAAsB,YAAY,CAAC,KAAK,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,CAYlF;AAQD,wBAAsB,aAAa,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC,CAU9F;AAUD,wBAAgB,QAAQ,CACtB,KAAK,EAAE,GAAG,EAAE,EACZ,YAAY,EAAE,MAAM,EACpB,aAAa,EAAE,MAAM,GACpB,GAAG,GAAG,SAAS,CAWjB;AAQD,wBAAsB,aAAa,CAAC,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,CAU9D;AAQD,wBAAgB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CA+B/C;AAOD,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAEzD;AAOD,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,GAAG;;;;;;;;EAe9C"}
|
package/dist/utils.js
CHANGED
|
@@ -3,11 +3,88 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.getExecutionNumber = getExecutionNumber;
|
|
7
|
+
exports.getTestsInfo = getTestsInfo;
|
|
8
|
+
exports.buildTestData = buildTestData;
|
|
9
|
+
exports.findTest = findTest;
|
|
6
10
|
exports.getSuiteNames = getSuiteNames;
|
|
7
11
|
exports.checkForUpdates = checkForUpdates;
|
|
12
|
+
exports.stripAnsi = stripAnsi;
|
|
13
|
+
exports.extractErrorDetails = extractErrorDetails;
|
|
8
14
|
const https_1 = __importDefault(require("https"));
|
|
9
15
|
const path_1 = __importDefault(require("path"));
|
|
10
16
|
const fs_1 = __importDefault(require("fs"));
|
|
17
|
+
const apiUtils_1 = require("./apiUtils");
|
|
18
|
+
// Module-level constant for ANSI escape code regex (avoids recompilation on each call)
|
|
19
|
+
const ANSI_REGEX = /[\u001B\u009B][[\]()#;?]*(?:(?:(?:[a-zA-Z\d]*(?:;[-a-zA-Z\d\/#&.:=?%@~_]*)*)?\u0007)|(?:(?:\d{1,4}(?:;\d{0,4})*)?[\dA-PR-TZcf-ntqry=><~]))/g;
|
|
20
|
+
// getExecutionNumber
|
|
21
|
+
// Fetches the execution number and organization ID from the API
|
|
22
|
+
// Parameters:
|
|
23
|
+
// accessToken: string - The access token for API authentication
|
|
24
|
+
// Returns: Promise<{ executionNumber: number; organizationId: string } | null>
|
|
25
|
+
async function getExecutionNumber(accessToken) {
|
|
26
|
+
let result = null;
|
|
27
|
+
const response = await apiUtils_1.api.get('/execution/execution_number', accessToken);
|
|
28
|
+
if (response.success && response.data) {
|
|
29
|
+
console.log(`ā Retrieved execution number: ${response.data.executionNumber}`);
|
|
30
|
+
result = {
|
|
31
|
+
executionNumber: response.data.executionNumber,
|
|
32
|
+
organizationId: response.data.organizationId
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
console.error('\nā Failed to retrieve execution number');
|
|
37
|
+
console.error(` ${response.error}`);
|
|
38
|
+
console.error(' Could not communicate with Amikoo backend.');
|
|
39
|
+
console.error(' Test execution data will not be reported.\n');
|
|
40
|
+
}
|
|
41
|
+
return result;
|
|
42
|
+
}
|
|
43
|
+
// getTestsInfo
|
|
44
|
+
// Fetches test information from API based on suite files
|
|
45
|
+
// Parameters:
|
|
46
|
+
// suite: any - Playwright suite object
|
|
47
|
+
// accessToken: string - The access token for API authentication
|
|
48
|
+
// Returns: Promise<any[]> - Array of test objects from API
|
|
49
|
+
async function getTestsInfo(suite, accessToken) {
|
|
50
|
+
let result = [];
|
|
51
|
+
const testData = await buildTestData(suite);
|
|
52
|
+
const response = await apiUtils_1.api.post('/tests/get_by_file_and_name', accessToken, { testData });
|
|
53
|
+
if (response.success && response.data) {
|
|
54
|
+
result = response.data;
|
|
55
|
+
}
|
|
56
|
+
console.log(`ā Found ${response?.data?.length || 0} matching tests in Amikoo`);
|
|
57
|
+
return result;
|
|
58
|
+
}
|
|
59
|
+
// buildTestData
|
|
60
|
+
// Builds an array of test data objects from Playwright suite for API lookup
|
|
61
|
+
// Parameters:
|
|
62
|
+
// suite: any - Playwright suite object containing allTests()
|
|
63
|
+
// Returns: Promise<Array<{ file: string; name: string }>> - Array of test data with file and name
|
|
64
|
+
async function buildTestData(suite) {
|
|
65
|
+
const testData = [];
|
|
66
|
+
for (const test of suite.allTests()) {
|
|
67
|
+
const file = path_1.default.basename(test.location.file);
|
|
68
|
+
const name = await getSuiteNames(test);
|
|
69
|
+
testData.push({ file, name });
|
|
70
|
+
}
|
|
71
|
+
return testData;
|
|
72
|
+
}
|
|
73
|
+
// findTest
|
|
74
|
+
// Finds a test from the API results array matching file path and fullTitlePath
|
|
75
|
+
// Parameters:
|
|
76
|
+
// tests: any[] - Array of test objects from API (paths already normalized by backend)
|
|
77
|
+
// fullFilePath: string - The full test file path, already normalized with forward slashes
|
|
78
|
+
// fullTitlePath: string - The full test title path (e.g., "Login > tests")
|
|
79
|
+
// Returns: object | undefined - The matching test object with hash, filePath, branch, fullTitlePath
|
|
80
|
+
function findTest(tests, fullFilePath, fullTitlePath) {
|
|
81
|
+
let result = undefined;
|
|
82
|
+
if (tests && tests.length > 0) {
|
|
83
|
+
// Find the test where both fullTitlePath matches and execution file path ends with API's filePath
|
|
84
|
+
result = tests.find(test => test.fullTitlePath === fullTitlePath && fullFilePath.endsWith(test.filePath));
|
|
85
|
+
}
|
|
86
|
+
return result;
|
|
87
|
+
}
|
|
11
88
|
// getSuiteNames
|
|
12
89
|
// Builds the full test title path by traversing parent suites
|
|
13
90
|
// Parameters:
|
|
@@ -23,6 +100,11 @@ async function getSuiteNames(test) {
|
|
|
23
100
|
}
|
|
24
101
|
return [...suites, test.title].join(' > ');
|
|
25
102
|
}
|
|
103
|
+
// checkForUpdates
|
|
104
|
+
// Checks npm registry for newer versions of @muuktest/amikoo-reporter and logs update notice
|
|
105
|
+
// Compares major and minor version numbers only (ignores patch versions)
|
|
106
|
+
// Parameters: none
|
|
107
|
+
// Returns: Promise<void> - resolves silently regardless of success/failure
|
|
26
108
|
function checkForUpdates() {
|
|
27
109
|
const pkgPath = path_1.default.resolve(__dirname, '..', 'package.json');
|
|
28
110
|
const currentVersion = JSON.parse(fs_1.default.readFileSync(pkgPath, 'utf8')).version;
|
|
@@ -57,4 +139,54 @@ function checkForUpdates() {
|
|
|
57
139
|
}
|
|
58
140
|
});
|
|
59
141
|
}
|
|
142
|
+
// stripAnsi
|
|
143
|
+
// Removes ANSI escape codes (colors, formatting) from a string
|
|
144
|
+
// Parameters:
|
|
145
|
+
// str: string | undefined - Input string that may contain ANSI codes
|
|
146
|
+
// Returns: string - Clean string without ANSI escape sequences
|
|
147
|
+
function stripAnsi(str) {
|
|
148
|
+
return str?.replace(ANSI_REGEX, '') || '';
|
|
149
|
+
}
|
|
150
|
+
// extractErrorDetails
|
|
151
|
+
// Extracts and formats error details from a test result, including the deepest failed step
|
|
152
|
+
// Parameters:
|
|
153
|
+
// result: any - Playwright test result object containing error and steps
|
|
154
|
+
// Returns: object | null - Error details with message and failed step info, or null if no error
|
|
155
|
+
function extractErrorDetails(result) {
|
|
156
|
+
const error = result.error;
|
|
157
|
+
if (!error)
|
|
158
|
+
return null;
|
|
159
|
+
const failedStep = findDeepestFailedStep(result.steps ?? []);
|
|
160
|
+
return {
|
|
161
|
+
message: stripAnsi(error.message),
|
|
162
|
+
failedStep: failedStep ? {
|
|
163
|
+
title: failedStep.title,
|
|
164
|
+
location: failedStep.location,
|
|
165
|
+
error: stripAnsi(failedStep.error?.message),
|
|
166
|
+
stack: stripAnsi(failedStep.error?.stack),
|
|
167
|
+
} : null,
|
|
168
|
+
};
|
|
169
|
+
}
|
|
170
|
+
// findDeepestFailedStep
|
|
171
|
+
// Traverses step hierarchy using BFS to find the deepest step that has an error
|
|
172
|
+
// Parameters:
|
|
173
|
+
// steps: TestStep[] - Array of top-level test steps to search
|
|
174
|
+
// maxDepth: number - Maximum depth to traverse (default: 20, prevents infinite loops)
|
|
175
|
+
// Returns: TestStep | null - The deepest step with an error, or null if none found
|
|
176
|
+
function findDeepestFailedStep(steps, maxDepth = 20) {
|
|
177
|
+
const queue = steps.map(step => ({ step, depth: 0 }));
|
|
178
|
+
let failedStep = null;
|
|
179
|
+
while (queue.length > 0) {
|
|
180
|
+
const { step, depth } = queue.shift();
|
|
181
|
+
if (depth > maxDepth)
|
|
182
|
+
break;
|
|
183
|
+
if (step.error) {
|
|
184
|
+
failedStep = step;
|
|
185
|
+
}
|
|
186
|
+
if (step.steps?.length) {
|
|
187
|
+
queue.unshift(...step.steps.map(s => ({ step: s, depth: depth + 1 })));
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
return failedStep;
|
|
191
|
+
}
|
|
60
192
|
//# sourceMappingURL=utils.js.map
|
package/dist/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../controlHub/utils.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../controlHub/utils.ts"],"names":[],"mappings":"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"}
|
package/dist/videoUtils.js
CHANGED
|
@@ -36,11 +36,11 @@ async function processVideos(videos, organizationId, executionNumber, token) {
|
|
|
36
36
|
uploadUrls = response.success ? response.data : null;
|
|
37
37
|
}
|
|
38
38
|
else {
|
|
39
|
-
console.log('No videos found to process');
|
|
39
|
+
console.log(' ā¹ No videos found to process');
|
|
40
40
|
}
|
|
41
41
|
}
|
|
42
42
|
else {
|
|
43
|
-
console.log('Missing required parameters for video processing');
|
|
43
|
+
console.log(' ā¹ Missing required parameters for video processing');
|
|
44
44
|
}
|
|
45
45
|
return { videos: processed, uploadUrls };
|
|
46
46
|
}
|
|
@@ -59,14 +59,14 @@ async function uploadVideoToS3(filePath, uploadUrl) {
|
|
|
59
59
|
});
|
|
60
60
|
success = response.ok;
|
|
61
61
|
if (!success) {
|
|
62
|
-
console.log(
|
|
62
|
+
console.log(` ā Upload failed with status: ${response.status}`);
|
|
63
63
|
}
|
|
64
64
|
/* } catch (error) {
|
|
65
65
|
console.log('Error uploading video:', error);
|
|
66
66
|
}*/
|
|
67
67
|
}
|
|
68
68
|
else {
|
|
69
|
-
console.log(
|
|
69
|
+
console.log(` ā Video file not found: ${filePath}`);
|
|
70
70
|
}
|
|
71
71
|
return success;
|
|
72
72
|
}
|
|
@@ -75,7 +75,7 @@ async function uploadVideoToS3(filePath, uploadUrl) {
|
|
|
75
75
|
*/
|
|
76
76
|
async function uploadVideosToS3(videos, uploadUrls) {
|
|
77
77
|
const results = [];
|
|
78
|
-
console.log(
|
|
78
|
+
console.log(`š¹ Uploading ${videos.length} video(s) to S3...`);
|
|
79
79
|
if (videos.length && uploadUrls?.length) {
|
|
80
80
|
// Create a map for quick lookup by S3 filename
|
|
81
81
|
const urlMap = new Map(uploadUrls.map(u => [u.fileName, u.uploadUrl]));
|
|
@@ -87,17 +87,17 @@ async function uploadVideosToS3(videos, uploadUrls) {
|
|
|
87
87
|
return { fileName: video.s3FileName, success };
|
|
88
88
|
}
|
|
89
89
|
else {
|
|
90
|
-
console.log(
|
|
90
|
+
console.log(` ā No upload URL found for: ${video.s3FileName}`);
|
|
91
91
|
return { fileName: video.s3FileName, success: false, error: 'No upload URL' };
|
|
92
92
|
}
|
|
93
93
|
});
|
|
94
94
|
const uploadResults = await Promise.all(uploadPromises);
|
|
95
95
|
results.push(...uploadResults);
|
|
96
96
|
const successCount = results.filter(r => r.success).length;
|
|
97
|
-
console.log(
|
|
97
|
+
console.log(`ā Uploaded ${successCount}/${results.length} video(s) to S3`);
|
|
98
98
|
}
|
|
99
99
|
else {
|
|
100
|
-
console.log('No videos or upload URLs provided');
|
|
100
|
+
console.log(' ā¹ No videos or upload URLs provided');
|
|
101
101
|
}
|
|
102
102
|
return results;
|
|
103
103
|
}
|
package/dist/videoUtils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"videoUtils.js","sourceRoot":"","sources":["../controlHub/videoUtils.ts"],"names":[],"mappings":";;;;;AAMA,oCAGC;AAKD,sCA+BC;AAiCD,4CA8BC;AA5GD,4CAAoB;AACpB,yCAAiC;AAEjC;;GAEG;AACH,SAAgB,YAAY,CAAC,MAAW;IACtC,MAAM,UAAU,GAAG,MAAM,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;IACzG,OAAO,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC;AAChC,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,aAAa,CACjC,MAAa,EACb,cAAsB,EACtB,eAAuB,EACvB,KAAa;IAEb,IAAI,SAAS,GAAU,EAAE,CAAC;IAC1B,IAAI,UAAU,GAAiB,IAAI,CAAC;IAEpC,IAAI,MAAM,CAAC,MAAM,IAAI,cAAc,IAAI,eAAe,EAAE,CAAC;QACvD,qDAAqD;QACrD,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,YAAE,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;aAC5D,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACT,SAAS,EAAE,CAAC,CAAC,IAAI;YACjB,UAAU,EAAE,GAAG,eAAe,IAAI,CAAC,CAAC,MAAM,OAAO;SAClD,CAAC,CAAC,CAAC;QAEN,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC;YACrB,mDAAmD;YACnD,MAAM,QAAQ,GAAG,MAAM,cAAG,CAAC,IAAI,CAAC,8BAA8B,EAAE,KAAK,EAAE;gBACrE,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,EAAE,UAAU,cAAc,EAAE,EAAE,CAAC,CAAC;aACvH,CAAC,CAAC;YACH,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;QACvD,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"videoUtils.js","sourceRoot":"","sources":["../controlHub/videoUtils.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@muuktest/amikoo-reporter",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.5",
|
|
4
4
|
"description": "Playwright reporter for Amikoo - automatically installs and configures test reporting to Amikoo AI",
|
|
5
5
|
"main": "dist/controlHubReporter.js",
|
|
6
6
|
"types": "dist/controlHubReporter.d.ts",
|