@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.
@@ -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;IAEf,OAAO,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG;IAqC/B,WAAW,CAAC,IAAI,EAAE,GAAG;IAIrB,OAAO,CAAC,KAAK,EAAE,GAAG;IAYlB,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG;IAwDhC,KAAK,CAAC,MAAM,EAAE,GAAG;CAqCxB;AACD,eAAe,UAAU,CAAC"}
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
- // We need to obtain a token from control hub so we can send API requests.
27
- this.key = process.env.AMIKOO_KEY || '';
28
- const tokenReponse = await apiUtils_1.api.post('/validate_key', '', { "key": this.key });
29
- if (tokenReponse.success && tokenReponse.data) {
30
- this.access_token = tokenReponse.data.access_token;
31
- }
32
- const context = await (0, gitUtils_1.getGitContext)(this.access_token);
33
- this.repositoryId = context.repositoryId;
34
- this.repositoryName = context.repositoryName;
35
- this.branch = context.branch;
36
- this.owner = context.owner;
37
- if (!this.access_token) {
38
- console.warn('Warning: failed to obtain access token');
39
- console.warn('Feedback data will not be sent to amikoo-reporter, and execution data will not be saved.');
40
- }
41
- else {
42
- // We need to call the API to get the execution number here, so we can include it in the feedback data.
43
- const executionResponse = await apiUtils_1.api.get('/execution/execution_number', this.access_token);
44
- if (executionResponse.success && executionResponse.data) {
45
- this.executionNumber = executionResponse?.data?.executionNumber;
46
- this.organizationId = executionResponse?.data?.organizationId;
47
- console.log('Retrieved execution number:', this.executionNumber);
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
- else {
50
- console.error('Failed to retrieve execution number', executionResponse.error);
62
+ catch (error) {
63
+ console.error('\nāœ– Error during reporter initialization:', error);
51
64
  }
52
- console.log(`Starting the test run for branch ${this.branch} in repository ${this.repositoryName}`);
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
- console.log(`Finished test ${test.title} with status ${result.status}`);
71
- const promise = new Promise(async (resolve, reject) => {
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.log("Error processing test end: ", error);
108
- reject(error);
144
+ console.error(` āœ– Error processing test "${test.title}":`, error);
109
145
  }
110
- resolve(true);
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('Wait for all tests to complete.');
117
- await Promise.all(this.testEndPromises);
118
- console.log('All tests have ended, sending execution report.');
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
- console.error('Failed to send execution report', feedbackResponse.error);
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. Execution report will not be sent to amikoo-reporter, and execution data will not be saved.');
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":"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"}
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
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../controlHub/utils.ts"],"names":[],"mappings":"AAUA,wBAAsB,aAAa,CAAC,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,CAU9D;AAGD,wBAAgB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CA+B/C"}
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":";;;;;AAUA,sCAUC;AAGD,0CA+BC;AAtDD,kDAA0B;AAC1B,gDAAwB;AACxB,4CAAoB;AAGpB,gBAAgB;AAChB,8DAA8D;AAC9D,cAAc;AACd,8DAA8D;AAC9D,yFAAyF;AAClF,KAAK,UAAU,aAAa,CAAC,IAAS;IAC3C,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IAEzB,OAAO,MAAM,EAAE,CAAC;QACd,IAAI,MAAM,CAAC,KAAK,KAAK,UAAU,IAAI,MAAM,CAAC,KAAK;YAAE,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC9E,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IACzB,CAAC;IAED,OAAO,CAAC,GAAG,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC7C,CAAC;AAGD,SAAgB,eAAe;IAC7B,MAAM,OAAO,GAAG,cAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;IAC9D,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,YAAE,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;IAE5E,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,IAAI,CAAC;YACH,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,GAAG,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAEnE,MAAM,GAAG,GAAG,eAAK,CAAC,GAAG,CAAC,+DAA+D,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE;gBAChH,IAAI,IAAI,GAAG,EAAE,CAAC;gBACd,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;gBACtD,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;oBACjB,IAAI,CAAC;wBACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC;wBACxC,IAAI,CAAC,MAAM,EAAE,CAAC;4BAAC,OAAO,EAAE,CAAC;4BAAC,OAAO;wBAAC,CAAC;wBACnC,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;wBAE3D,IAAI,QAAQ,GAAG,QAAQ,IAAI,CAAC,QAAQ,KAAK,QAAQ,IAAI,QAAQ,GAAG,QAAQ,CAAC,EAAE,CAAC;4BAC1E,OAAO,CAAC,GAAG,CAAC,gEAAgE,cAAc,MAAM,MAAM,EAAE,CAAC,CAAC;4BAC1G,OAAO,CAAC,GAAG,CAAC,mEAAmE,CAAC,CAAC;wBACnF,CAAC;oBACH,CAAC;oBAAC,MAAM,CAAC,CAAC,yBAAyB,CAAC,CAAC;oBACrC,OAAO,EAAE,CAAC;gBACZ,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YACH,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;YACjC,GAAG,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACzD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../controlHub/utils.ts"],"names":[],"mappings":"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"}
@@ -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('Upload failed with status:', response.status);
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('Video file not found:', filePath);
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(`Starting upload of ${videos.length} videos to S3`);
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('No upload URL found for:', video.s3FileName);
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(`Uploaded ${successCount}/${results.length} videos to S3`);
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
  }
@@ -1 +1 @@
1
- {"version":3,"file":"videoUtils.js","sourceRoot":"","sources":["../controlHub/videoUtils.ts"],"names":[],"mappings":"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"}
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",
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",