@vibe-validate/extractors 0.17.4 → 0.17.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/extractor-registry.d.ts.map +1 -1
- package/dist/extractor-registry.js +8 -8
- package/dist/extractor-registry.js.map +1 -1
- package/dist/extractors/ava/index.d.ts.map +1 -1
- package/dist/extractors/ava/index.js +15 -14
- package/dist/extractors/ava/index.js.map +1 -1
- package/dist/extractors/ava/index.test.js +30 -20
- package/dist/extractors/ava/index.test.js.map +1 -1
- package/dist/extractors/eslint/index.d.ts.map +1 -1
- package/dist/extractors/eslint/index.js +1 -1
- package/dist/extractors/eslint/index.js.map +1 -1
- package/dist/extractors/eslint/index.test.js.map +1 -1
- package/dist/extractors/generic/index.test.js.map +1 -1
- package/dist/extractors/jasmine/index.test.js.map +1 -1
- package/dist/extractors/jest/index.d.ts.map +1 -1
- package/dist/extractors/jest/index.js.map +1 -1
- package/dist/extractors/jest/index.test.js.map +1 -1
- package/dist/extractors/junit/index.d.ts.map +1 -1
- package/dist/extractors/junit/index.js +5 -5
- package/dist/extractors/junit/index.js.map +1 -1
- package/dist/extractors/junit/index.test.js.map +1 -1
- package/dist/extractors/maven-checkstyle/index.d.ts.map +1 -1
- package/dist/extractors/maven-checkstyle/index.js +1 -1
- package/dist/extractors/maven-checkstyle/index.js.map +1 -1
- package/dist/extractors/maven-checkstyle/index.test.js +2 -2
- package/dist/extractors/maven-checkstyle/index.test.js.map +1 -1
- package/dist/extractors/maven-compiler/index.d.ts.map +1 -1
- package/dist/extractors/maven-compiler/index.js +1 -1
- package/dist/extractors/maven-compiler/index.js.map +1 -1
- package/dist/extractors/maven-compiler/index.test.js +1 -1
- package/dist/extractors/maven-compiler/index.test.js.map +1 -1
- package/dist/extractors/maven-surefire/index.d.ts.map +1 -1
- package/dist/extractors/maven-surefire/index.js.map +1 -1
- package/dist/extractors/maven-surefire/index.test.js.map +1 -1
- package/dist/extractors/mocha/index.test.js.map +1 -1
- package/dist/extractors/playwright/index.test.js.map +1 -1
- package/dist/extractors/tap/index.test.js +2 -2
- package/dist/extractors/tap/index.test.js.map +1 -1
- package/dist/extractors/typescript/index.d.ts.map +1 -1
- package/dist/extractors/typescript/index.js +16 -19
- package/dist/extractors/typescript/index.js.map +1 -1
- package/dist/extractors/typescript/index.test.js.map +1 -1
- package/dist/extractors/vitest/index.d.ts.map +1 -1
- package/dist/extractors/vitest/index.js +16 -7
- package/dist/extractors/vitest/index.js.map +1 -1
- package/dist/extractors/vitest/index.test.js +38 -0
- package/dist/extractors/vitest/index.test.js.map +1 -1
- package/dist/plugin-loader.d.ts.map +1 -1
- package/dist/plugin-loader.js +1 -1
- package/dist/plugin-loader.js.map +1 -1
- package/dist/result-schema-export.d.ts.map +1 -1
- package/dist/result-schema-export.js.map +1 -1
- package/dist/result-schema.d.ts.map +1 -1
- package/dist/result-schema.js +1 -1
- package/dist/result-schema.js.map +1 -1
- package/dist/sandboxed-extractor.d.ts +1 -1
- package/dist/sandboxed-extractor.d.ts.map +1 -1
- package/dist/sandboxed-extractor.js.map +1 -1
- package/dist/scripts/generate-result-schema.js +1 -1
- package/dist/scripts/generate-result-schema.js.map +1 -1
- package/dist/smart-extractor.d.ts.map +1 -1
- package/dist/smart-extractor.js.map +1 -1
- package/dist/utils/guidance-generator.d.ts.map +1 -1
- package/dist/utils/guidance-generator.js +4 -7
- package/dist/utils/guidance-generator.js.map +1 -1
- package/dist/utils/test-framework-utils.d.ts.map +1 -1
- package/dist/utils/test-framework-utils.js.map +1 -1
- package/dist/utils.js +1 -1
- package/dist/utils.js.map +1 -1
- package/package.json +8 -8
- package/dist/ava-extractor.d.ts +0 -24
- package/dist/ava-extractor.d.ts.map +0 -1
- package/dist/ava-extractor.js +0 -343
- package/dist/ava-extractor.js.map +0 -1
- package/dist/eslint-extractor.d.ts +0 -25
- package/dist/eslint-extractor.d.ts.map +0 -1
- package/dist/eslint-extractor.js +0 -145
- package/dist/eslint-extractor.js.map +0 -1
- package/dist/generic-extractor.d.ts +0 -35
- package/dist/generic-extractor.d.ts.map +0 -1
- package/dist/generic-extractor.js +0 -128
- package/dist/generic-extractor.js.map +0 -1
- package/dist/jasmine-extractor.d.ts +0 -23
- package/dist/jasmine-extractor.d.ts.map +0 -1
- package/dist/jasmine-extractor.js +0 -151
- package/dist/jasmine-extractor.js.map +0 -1
- package/dist/jest-extractor.d.ts +0 -29
- package/dist/jest-extractor.d.ts.map +0 -1
- package/dist/jest-extractor.js +0 -174
- package/dist/jest-extractor.js.map +0 -1
- package/dist/junit-extractor.d.ts +0 -24
- package/dist/junit-extractor.d.ts.map +0 -1
- package/dist/junit-extractor.js +0 -193
- package/dist/junit-extractor.js.map +0 -1
- package/dist/maven-checkstyle-extractor.d.ts +0 -20
- package/dist/maven-checkstyle-extractor.d.ts.map +0 -1
- package/dist/maven-checkstyle-extractor.js +0 -208
- package/dist/maven-checkstyle-extractor.js.map +0 -1
- package/dist/maven-compiler-extractor.d.ts +0 -20
- package/dist/maven-compiler-extractor.d.ts.map +0 -1
- package/dist/maven-compiler-extractor.js +0 -218
- package/dist/maven-compiler-extractor.js.map +0 -1
- package/dist/maven-surefire-extractor.d.ts +0 -20
- package/dist/maven-surefire-extractor.d.ts.map +0 -1
- package/dist/maven-surefire-extractor.js +0 -228
- package/dist/maven-surefire-extractor.js.map +0 -1
- package/dist/mocha-extractor.d.ts +0 -23
- package/dist/mocha-extractor.d.ts.map +0 -1
- package/dist/mocha-extractor.js +0 -160
- package/dist/mocha-extractor.js.map +0 -1
- package/dist/playwright-extractor.d.ts +0 -38
- package/dist/playwright-extractor.d.ts.map +0 -1
- package/dist/playwright-extractor.js +0 -239
- package/dist/playwright-extractor.js.map +0 -1
- package/dist/sandbox.test.d.ts +0 -8
- package/dist/sandbox.test.d.ts.map +0 -1
- package/dist/sandbox.test.js +0 -395
- package/dist/sandbox.test.js.map +0 -1
- package/dist/sandboxed-extractor.test.d.ts +0 -5
- package/dist/sandboxed-extractor.test.d.ts.map +0 -1
- package/dist/sandboxed-extractor.test.js +0 -346
- package/dist/sandboxed-extractor.test.js.map +0 -1
- package/dist/tap-extractor.d.ts +0 -24
- package/dist/tap-extractor.d.ts.map +0 -1
- package/dist/tap-extractor.js +0 -217
- package/dist/tap-extractor.js.map +0 -1
- package/dist/typescript-extractor.d.ts +0 -25
- package/dist/typescript-extractor.d.ts.map +0 -1
- package/dist/typescript-extractor.js +0 -96
- package/dist/typescript-extractor.js.map +0 -1
- package/dist/vitest-extractor.d.ts +0 -38
- package/dist/vitest-extractor.d.ts.map +0 -1
- package/dist/vitest-extractor.js +0 -540
- package/dist/vitest-extractor.js.map +0 -1
package/dist/mocha-extractor.js
DELETED
|
@@ -1,160 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Mocha Error Extractor
|
|
3
|
-
*
|
|
4
|
-
* Parses Mocha test output and formats failures for LLM consumption.
|
|
5
|
-
*
|
|
6
|
-
* @package @vibe-validate/extractors
|
|
7
|
-
*/
|
|
8
|
-
import { processTestFailures } from './utils/test-framework-utils.js';
|
|
9
|
-
/**
|
|
10
|
-
* Extract errors from Mocha test output
|
|
11
|
-
*
|
|
12
|
-
* @param output - Mocha text output
|
|
13
|
-
* @returns Structured error information
|
|
14
|
-
*
|
|
15
|
-
* @example
|
|
16
|
-
* ```typescript
|
|
17
|
-
* const mochaOutput = execSync('mocha tests/**\/*.test.js', { encoding: 'utf-8' });
|
|
18
|
-
* const result = extractMochaErrors(mochaOutput);
|
|
19
|
-
* console.log(result.summary); // "5 test(s) failed"
|
|
20
|
-
* ```
|
|
21
|
-
*/
|
|
22
|
-
export function extractMochaErrors(output) {
|
|
23
|
-
// Note: ANSI codes are stripped centrally in smart-extractor.ts
|
|
24
|
-
// Check if this looks like Mocha output
|
|
25
|
-
if (!output.includes('failing') && !output.includes('passing')) {
|
|
26
|
-
return {
|
|
27
|
-
summary: 'Unable to parse Mocha output - invalid format',
|
|
28
|
-
errors: [],
|
|
29
|
-
totalErrors: 0,
|
|
30
|
-
errorSummary: output.trim(),
|
|
31
|
-
guidance: 'Ensure the input is valid Mocha test output',
|
|
32
|
-
metadata: {
|
|
33
|
-
confidence: 0,
|
|
34
|
-
completeness: 0,
|
|
35
|
-
issues: ['Not Mocha output format']
|
|
36
|
-
}
|
|
37
|
-
};
|
|
38
|
-
}
|
|
39
|
-
// Extract failure count
|
|
40
|
-
// eslint-disable-next-line sonarjs/slow-regex -- Safe: only parses Mocha test framework summary (controlled output), not user input
|
|
41
|
-
const failingMatch = /(\d+) failing/.exec(output);
|
|
42
|
-
const failureCount = failingMatch ? Number.parseInt(failingMatch[1], 10) : 0;
|
|
43
|
-
// Extract all failures
|
|
44
|
-
const failures = extractFailures(output);
|
|
45
|
-
// Early return if no failures detected (but failure count suggested there should be)
|
|
46
|
-
if (failureCount === 0 && failures.length === 0) {
|
|
47
|
-
return processTestFailures([], 95);
|
|
48
|
-
}
|
|
49
|
-
// Process failures using shared utility
|
|
50
|
-
return processTestFailures(failures, 95);
|
|
51
|
-
}
|
|
52
|
-
/**
|
|
53
|
-
* Extract failure information from Mocha output
|
|
54
|
-
*/
|
|
55
|
-
// eslint-disable-next-line sonarjs/cognitive-complexity -- Complexity 30 acceptable for Mocha output parsing (handles test hierarchies, error messages, and stack trace extraction)
|
|
56
|
-
function extractFailures(output) {
|
|
57
|
-
const failures = [];
|
|
58
|
-
const lines = output.split('\n');
|
|
59
|
-
let i = 0;
|
|
60
|
-
while (i < lines.length) {
|
|
61
|
-
const line = lines[i];
|
|
62
|
-
// Look for numbered failure markers (e.g., " 1) ")
|
|
63
|
-
// Only match detailed format (2 spaces), not summary format (6+ spaces)
|
|
64
|
-
// eslint-disable-next-line sonarjs/slow-regex -- Safe: only parses Mocha test framework output (controlled output), not user input
|
|
65
|
-
const failureMatch = /^ {2}(\d+)\)\s+(.*)$/.exec(line);
|
|
66
|
-
if (failureMatch) {
|
|
67
|
-
// failureMatch[1] contains the failure number (not used - test name is more important)
|
|
68
|
-
const firstPart = failureMatch[2].trim();
|
|
69
|
-
// Collect test hierarchy lines
|
|
70
|
-
const testNameParts = [];
|
|
71
|
-
// Check if first part ends with colon (simple format: "1) Test:")
|
|
72
|
-
const isSimpleFormat = firstPart.endsWith(':');
|
|
73
|
-
if (firstPart) {
|
|
74
|
-
testNameParts.push(firstPart.replace(/:$/, '')); // Remove trailing colon
|
|
75
|
-
}
|
|
76
|
-
let j = i + 1;
|
|
77
|
-
// If simple format, don't try to collect more hierarchy
|
|
78
|
-
if (!isSimpleFormat) {
|
|
79
|
-
// Continue collecting hierarchy lines until we hit blank line or error
|
|
80
|
-
while (j < lines.length) {
|
|
81
|
-
const nextLine = lines[j];
|
|
82
|
-
// Blank line marks end of hierarchy
|
|
83
|
-
if (nextLine.trim() === '') {
|
|
84
|
-
break;
|
|
85
|
-
}
|
|
86
|
-
// Error line marks end of hierarchy
|
|
87
|
-
if (/^\s+(Error|AssertionError|TypeError)/.exec(nextLine)) {
|
|
88
|
-
break;
|
|
89
|
-
}
|
|
90
|
-
// Indented lines are part of hierarchy (at least 5 spaces for Mocha)
|
|
91
|
-
if (/^\s{5,}\S/.exec(nextLine)) {
|
|
92
|
-
const part = nextLine.trim().replace(/:$/, ''); // Remove trailing colon
|
|
93
|
-
testNameParts.push(part);
|
|
94
|
-
}
|
|
95
|
-
j++;
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
const testName = testNameParts.join(' > ');
|
|
99
|
-
// Now scan for error message and stack trace
|
|
100
|
-
let message;
|
|
101
|
-
let errorType;
|
|
102
|
-
let file;
|
|
103
|
-
let lineNumber;
|
|
104
|
-
// Continue from where we left off
|
|
105
|
-
while (j < lines.length && j < i + 40) {
|
|
106
|
-
const nextLine = lines[j];
|
|
107
|
-
// Stop if we hit the next failure
|
|
108
|
-
if (/^\s+\d+\)\s+/.exec(nextLine)) {
|
|
109
|
-
break;
|
|
110
|
-
}
|
|
111
|
-
// Extract error type and message
|
|
112
|
-
// Pattern 1: " AssertionError [ERR_ASSERTION]: Expected..."
|
|
113
|
-
// Pattern 2: " Error: ENOENT: no such file..."
|
|
114
|
-
// Pattern 3: " TypeError: Cannot read..."
|
|
115
|
-
if (!message) {
|
|
116
|
-
// Match plain "Error" or prefixed errors like "TypeError", "AssertionError"
|
|
117
|
-
const errorMatch = /^\s+([A-Za-z]*Error)(?:\s\[\w+\])?\s*:\s*(.+)/.exec(nextLine);
|
|
118
|
-
if (errorMatch) {
|
|
119
|
-
errorType = errorMatch[1];
|
|
120
|
-
message = errorMatch[2].trim();
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
// Extract file location from stack trace
|
|
124
|
-
if (!file && nextLine.includes('at Context.<anonymous>')) {
|
|
125
|
-
// Match various path formats:
|
|
126
|
-
// - file:///path/to/file.js:10:20
|
|
127
|
-
// - /absolute/path/file.js:10:20
|
|
128
|
-
// - relative/path/file.js:10:20
|
|
129
|
-
const locationMatch = /at Context\.<anonymous> \((?:file:\/\/)?([^:)]+):(\d+)(?::(\d+))?\)/.exec(nextLine);
|
|
130
|
-
if (locationMatch) {
|
|
131
|
-
file = locationMatch[1];
|
|
132
|
-
lineNumber = Number.parseInt(locationMatch[2], 10);
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
// Extract file from timeout error messages: "Error: Timeout... (/path/to/file.js)"
|
|
136
|
-
if (!file && message?.includes('Timeout')) {
|
|
137
|
-
// eslint-disable-next-line sonarjs/slow-regex -- Safe: only parses Mocha test framework timeout messages (controlled output), not user input
|
|
138
|
-
const timeoutFileMatch = /\(([^)]+\.(?:js|ts|mjs|cjs))\)/.exec(message);
|
|
139
|
-
if (timeoutFileMatch) {
|
|
140
|
-
file = timeoutFileMatch[1];
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
j++;
|
|
144
|
-
}
|
|
145
|
-
failures.push({
|
|
146
|
-
testName,
|
|
147
|
-
message,
|
|
148
|
-
errorType,
|
|
149
|
-
file,
|
|
150
|
-
line: lineNumber
|
|
151
|
-
});
|
|
152
|
-
i = j; // Skip to after this failure
|
|
153
|
-
}
|
|
154
|
-
else {
|
|
155
|
-
i++;
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
return failures;
|
|
159
|
-
}
|
|
160
|
-
//# sourceMappingURL=mocha-extractor.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mocha-extractor.js","sourceRoot":"","sources":["../src/mocha-extractor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Playwright Test Error Extractor
|
|
3
|
-
*
|
|
4
|
-
* Extracts error information from Playwright test output.
|
|
5
|
-
*
|
|
6
|
-
* Output format:
|
|
7
|
-
* ```
|
|
8
|
-
* Running N tests using M workers
|
|
9
|
-
*
|
|
10
|
-
* ✘ 1 test.spec.ts:10:5 › Describe › test name (100ms)
|
|
11
|
-
* ✓ 2 test.spec.ts:20:5 › passing test (50ms)
|
|
12
|
-
*
|
|
13
|
-
* 1) test.spec.ts:10:5 › Describe › test name
|
|
14
|
-
*
|
|
15
|
-
* Error: expect(received).toBe(expected)
|
|
16
|
-
*
|
|
17
|
-
* Expected: "foo"
|
|
18
|
-
* Received: "bar"
|
|
19
|
-
*
|
|
20
|
-
* 10 | test('test name', async () => {
|
|
21
|
-
* 11 | const value = 'bar';
|
|
22
|
-
* > 12 | expect(value).toBe('foo');
|
|
23
|
-
* | ^
|
|
24
|
-
* 13 | });
|
|
25
|
-
*
|
|
26
|
-
* at test.spec.ts:12:21
|
|
27
|
-
* ```
|
|
28
|
-
*/
|
|
29
|
-
import type { ErrorExtractorResult } from './types.js';
|
|
30
|
-
/**
|
|
31
|
-
* Extract errors from Playwright test output
|
|
32
|
-
*/
|
|
33
|
-
export declare function extractPlaywrightErrors(output: string): ErrorExtractorResult;
|
|
34
|
-
/**
|
|
35
|
-
* Check if output is from Playwright
|
|
36
|
-
*/
|
|
37
|
-
export declare function isPlaywrightOutput(output: string): boolean;
|
|
38
|
-
//# sourceMappingURL=playwright-extractor.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"playwright-extractor.d.ts","sourceRoot":"","sources":["../src/playwright-extractor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,KAAK,EAAkB,oBAAoB,EAAsB,MAAM,YAAY,CAAC;AAG3F;;GAEG;AAEH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,GAAG,oBAAoB,CA+H5E;AAyGD;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAY1D"}
|
|
@@ -1,239 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Playwright Test Error Extractor
|
|
3
|
-
*
|
|
4
|
-
* Extracts error information from Playwright test output.
|
|
5
|
-
*
|
|
6
|
-
* Output format:
|
|
7
|
-
* ```
|
|
8
|
-
* Running N tests using M workers
|
|
9
|
-
*
|
|
10
|
-
* ✘ 1 test.spec.ts:10:5 › Describe › test name (100ms)
|
|
11
|
-
* ✓ 2 test.spec.ts:20:5 › passing test (50ms)
|
|
12
|
-
*
|
|
13
|
-
* 1) test.spec.ts:10:5 › Describe › test name
|
|
14
|
-
*
|
|
15
|
-
* Error: expect(received).toBe(expected)
|
|
16
|
-
*
|
|
17
|
-
* Expected: "foo"
|
|
18
|
-
* Received: "bar"
|
|
19
|
-
*
|
|
20
|
-
* 10 | test('test name', async () => {
|
|
21
|
-
* 11 | const value = 'bar';
|
|
22
|
-
* > 12 | expect(value).toBe('foo');
|
|
23
|
-
* | ^
|
|
24
|
-
* 13 | });
|
|
25
|
-
*
|
|
26
|
-
* at test.spec.ts:12:21
|
|
27
|
-
* ```
|
|
28
|
-
*/
|
|
29
|
-
import { stripAnsiCodes } from './utils.js';
|
|
30
|
-
/**
|
|
31
|
-
* Extract errors from Playwright test output
|
|
32
|
-
*/
|
|
33
|
-
// eslint-disable-next-line sonarjs/cognitive-complexity -- Complexity 22 acceptable for Playwright output parsing (handles numbered failures, error blocks, and file path normalization)
|
|
34
|
-
export function extractPlaywrightErrors(output) {
|
|
35
|
-
const errors = [];
|
|
36
|
-
const issues = [];
|
|
37
|
-
// Note: ANSI codes are stripped centrally in smart-extractor.ts
|
|
38
|
-
// Split into lines for processing
|
|
39
|
-
const lines = output.split('\n');
|
|
40
|
-
// Parse numbered failure blocks: " 1) tests/path/test.spec.ts:10:5 › test name"
|
|
41
|
-
let i = 0;
|
|
42
|
-
while (i < lines.length) {
|
|
43
|
-
const line = lines[i];
|
|
44
|
-
// Match numbered failure header: " 1) tests/path/test.spec.ts:10:5 › test name"
|
|
45
|
-
// File path can include directories: "tests/playwright/test.spec.ts" or just "test.spec.ts"
|
|
46
|
-
// Allow trailing whitespace
|
|
47
|
-
// eslint-disable-next-line sonarjs/slow-regex -- Safe: only parses Playwright test framework output (controlled output), not user input
|
|
48
|
-
const failureMatch = /^\s+(\d+)\)\s+(.*\.spec\.ts):(\d+):(\d+)\s+›\s+(.+?)\s*$/.exec(line);
|
|
49
|
-
if (failureMatch) {
|
|
50
|
-
const [, , file, , , testName] = failureMatch;
|
|
51
|
-
// Extract error block (everything until next numbered failure or end)
|
|
52
|
-
const errorLines = [];
|
|
53
|
-
i++;
|
|
54
|
-
while (i < lines.length) {
|
|
55
|
-
const nextLine = lines[i];
|
|
56
|
-
// Stop at next numbered failure
|
|
57
|
-
if (/^\s+\d+\)\s+/.exec(nextLine)) {
|
|
58
|
-
break;
|
|
59
|
-
}
|
|
60
|
-
errorLines.push(nextLine);
|
|
61
|
-
i++;
|
|
62
|
-
}
|
|
63
|
-
// Parse the error block
|
|
64
|
-
const errorBlock = errorLines.join('\n');
|
|
65
|
-
// Extract error message (first Error: line and subsequent details)
|
|
66
|
-
// eslint-disable-next-line sonarjs/slow-regex -- Safe: only parses Playwright test framework error messages (controlled output), not user input
|
|
67
|
-
const errorMessageMatch = /Error:\s*(.+?)(?:\n\n|\n(?=\s+at\s))/s.exec(errorBlock);
|
|
68
|
-
const errorMessage = errorMessageMatch ? errorMessageMatch[1].trim() : testName;
|
|
69
|
-
// Extract file location from stack trace (last line with "at file:line:col")
|
|
70
|
-
// eslint-disable-next-line sonarjs/slow-regex -- Safe: only parses Playwright test framework stack traces (controlled output), not user input
|
|
71
|
-
const stackMatch = /at\s+(.*\.spec\.ts):(\d+):(\d+)/.exec(errorBlock);
|
|
72
|
-
let errorFile = file;
|
|
73
|
-
let errorLine = 0;
|
|
74
|
-
let errorColumn = 0;
|
|
75
|
-
if (stackMatch) {
|
|
76
|
-
errorFile = stackMatch[1];
|
|
77
|
-
errorLine = Number.parseInt(stackMatch[2], 10);
|
|
78
|
-
errorColumn = Number.parseInt(stackMatch[3], 10);
|
|
79
|
-
}
|
|
80
|
-
else {
|
|
81
|
-
// No stack trace found - track as an issue
|
|
82
|
-
issues.push(`No stack trace found for failure: ${testName}`);
|
|
83
|
-
}
|
|
84
|
-
// Normalize file path (remove absolute path prefix if present, keep relative paths)
|
|
85
|
-
// If it's an absolute path, extract just the tests/... part or the filename
|
|
86
|
-
if (errorFile.includes('/') && !errorFile.startsWith('tests')) {
|
|
87
|
-
// Absolute path - extract relative part
|
|
88
|
-
const testsMatch = /(tests?\/.+\.spec\.ts)/i.exec(errorFile);
|
|
89
|
-
if (testsMatch) {
|
|
90
|
-
errorFile = testsMatch[1];
|
|
91
|
-
}
|
|
92
|
-
else {
|
|
93
|
-
// Just keep filename if no tests/ path found
|
|
94
|
-
errorFile = errorFile.replace(/^.*\/([^/]+\.spec\.ts)$/i, '$1');
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
// If it already starts with tests/ or is just a filename, keep it as-is
|
|
98
|
-
// Detect error type
|
|
99
|
-
const type = detectErrorType(errorMessage, errorBlock);
|
|
100
|
-
// Generate guidance
|
|
101
|
-
const guidance = generateGuidance(type, errorMessage);
|
|
102
|
-
// Build complete error message
|
|
103
|
-
const completeMessage = `${testName}\n${errorMessage}`;
|
|
104
|
-
errors.push({
|
|
105
|
-
file: errorFile,
|
|
106
|
-
line: errorLine,
|
|
107
|
-
column: errorColumn,
|
|
108
|
-
message: completeMessage,
|
|
109
|
-
context: testName,
|
|
110
|
-
guidance,
|
|
111
|
-
});
|
|
112
|
-
}
|
|
113
|
-
else {
|
|
114
|
-
i++;
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
// Calculate quality metadata
|
|
118
|
-
const metadata = calculateQualityMetadata(errors, issues);
|
|
119
|
-
// Generate summary
|
|
120
|
-
const summary = errors.length > 0
|
|
121
|
-
? `${errors.length} test(s) failed`
|
|
122
|
-
: '0 test(s) failed';
|
|
123
|
-
// Generate guidance
|
|
124
|
-
const guidance = errors.length > 0
|
|
125
|
-
? 'Review test failures and fix the underlying issues. Check assertions, selectors, and test logic.'
|
|
126
|
-
: '';
|
|
127
|
-
// Generate clean output
|
|
128
|
-
const formattedOutput = errors
|
|
129
|
-
.map(e => {
|
|
130
|
-
const location = e.file && e.line ? `${e.file}:${e.line}` : e.file ?? 'unknown';
|
|
131
|
-
return `${location}: ${e.message}`;
|
|
132
|
-
})
|
|
133
|
-
.join('\n');
|
|
134
|
-
return {
|
|
135
|
-
errors,
|
|
136
|
-
summary,
|
|
137
|
-
totalErrors: errors.length,
|
|
138
|
-
guidance,
|
|
139
|
-
errorSummary: formattedOutput,
|
|
140
|
-
metadata,
|
|
141
|
-
};
|
|
142
|
-
}
|
|
143
|
-
/**
|
|
144
|
-
* Detect error type from error message and block
|
|
145
|
-
*/
|
|
146
|
-
function detectErrorType(message, block) {
|
|
147
|
-
// Element not found (waiting for locator with timeout)
|
|
148
|
-
// Check this BEFORE generic timeout to avoid false positives
|
|
149
|
-
if (block.includes('waiting for locator') && (message.includes('timeout') || message.includes('exceeded'))) {
|
|
150
|
-
return 'element-not-found';
|
|
151
|
-
}
|
|
152
|
-
// Navigation errors
|
|
153
|
-
if (message.includes('net::ERR') || message.includes('page.goto:')) {
|
|
154
|
-
return 'navigation-error';
|
|
155
|
-
}
|
|
156
|
-
// Timeout errors (generic)
|
|
157
|
-
if (message.includes('timeout') || message.includes('exceeded')) {
|
|
158
|
-
return 'timeout';
|
|
159
|
-
}
|
|
160
|
-
// Assertion errors (expect())
|
|
161
|
-
if (message.includes('expect(') ||
|
|
162
|
-
message.includes('toBe') ||
|
|
163
|
-
message.includes('toContain') ||
|
|
164
|
-
message.includes('toBeVisible') ||
|
|
165
|
-
message.includes('toHaveValue') ||
|
|
166
|
-
message.includes('toHaveCount')) {
|
|
167
|
-
return 'assertion-error';
|
|
168
|
-
}
|
|
169
|
-
// Generic error
|
|
170
|
-
return 'error';
|
|
171
|
-
}
|
|
172
|
-
/**
|
|
173
|
-
* Generate guidance for common error types
|
|
174
|
-
*/
|
|
175
|
-
function generateGuidance(type, _message) {
|
|
176
|
-
switch (type) {
|
|
177
|
-
case 'assertion-error':
|
|
178
|
-
return 'Check the assertion expectation and ensure the actual value matches. Review the test logic and the application state.';
|
|
179
|
-
case 'timeout':
|
|
180
|
-
return 'The operation exceeded the timeout limit. Consider increasing the timeout, checking for slow operations, or verifying the application is responding correctly.';
|
|
181
|
-
case 'element-not-found':
|
|
182
|
-
return 'The element was not found on the page. Verify the selector is correct, the element exists, and it is rendered when expected.';
|
|
183
|
-
case 'navigation-error':
|
|
184
|
-
return 'Failed to navigate to the page. Check the URL is correct, the server is running, and the page exists.';
|
|
185
|
-
default:
|
|
186
|
-
return undefined;
|
|
187
|
-
}
|
|
188
|
-
}
|
|
189
|
-
/**
|
|
190
|
-
* Calculate quality metadata
|
|
191
|
-
*/
|
|
192
|
-
function calculateQualityMetadata(errors, issues) {
|
|
193
|
-
if (errors.length === 0 && issues.length === 0) {
|
|
194
|
-
// No errors and no issues = perfect extraction (or no failures)
|
|
195
|
-
return {
|
|
196
|
-
confidence: 100,
|
|
197
|
-
completeness: 100,
|
|
198
|
-
issues: [],
|
|
199
|
-
};
|
|
200
|
-
}
|
|
201
|
-
// Calculate completeness: % of errors with file + line + message
|
|
202
|
-
const completeErrors = errors.filter(e => e.file &&
|
|
203
|
-
e.line !== undefined &&
|
|
204
|
-
e.line > 0 &&
|
|
205
|
-
e.message).length;
|
|
206
|
-
const completeness = errors.length > 0
|
|
207
|
-
? Math.round((completeErrors / errors.length) * 100)
|
|
208
|
-
: 100;
|
|
209
|
-
// Calculate confidence based on pattern matching quality
|
|
210
|
-
let confidence = 90; // Base confidence for Playwright (distinctive format)
|
|
211
|
-
// Reduce confidence if we have issues
|
|
212
|
-
if (issues.length > 0) {
|
|
213
|
-
confidence -= Math.min(issues.length * 10, 40);
|
|
214
|
-
}
|
|
215
|
-
// Reduce confidence if completeness is low
|
|
216
|
-
if (completeness < 80) {
|
|
217
|
-
confidence -= (100 - completeness) / 2;
|
|
218
|
-
}
|
|
219
|
-
confidence = Math.max(0, Math.min(100, confidence));
|
|
220
|
-
return {
|
|
221
|
-
confidence: Math.round(confidence),
|
|
222
|
-
completeness,
|
|
223
|
-
issues,
|
|
224
|
-
};
|
|
225
|
-
}
|
|
226
|
-
/**
|
|
227
|
-
* Check if output is from Playwright
|
|
228
|
-
*/
|
|
229
|
-
export function isPlaywrightOutput(output) {
|
|
230
|
-
// Look for distinctive Playwright markers
|
|
231
|
-
const errorSummary = stripAnsiCodes(output);
|
|
232
|
-
// Playwright uses ✘ symbol and .spec.ts files
|
|
233
|
-
const hasPlaywrightMarker = errorSummary.includes('✘') && errorSummary.includes('.spec.ts');
|
|
234
|
-
// Or has numbered failures with › separator
|
|
235
|
-
// eslint-disable-next-line sonarjs/slow-regex -- Safe: only tests Playwright output format (controlled test framework output), not user input
|
|
236
|
-
const hasNumberedFailures = /^\s+\d+\)\s+.+\.spec\.ts:\d+:\d+\s+›/.test(errorSummary);
|
|
237
|
-
return hasPlaywrightMarker || hasNumberedFailures;
|
|
238
|
-
}
|
|
239
|
-
//# sourceMappingURL=playwright-extractor.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"playwright-extractor.js","sourceRoot":"","sources":["../src/playwright-extractor.ts"],"names":[],"mappings":"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"}
|
package/dist/sandbox.test.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sandbox.test.d.ts","sourceRoot":"","sources":["../src/sandbox.test.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
|