@vibe-validate/extractors 0.17.0-rc3 → 0.17.0

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.
Files changed (159) hide show
  1. package/dist/extractor-registry.d.ts +103 -0
  2. package/dist/extractor-registry.d.ts.map +1 -0
  3. package/dist/extractor-registry.js +278 -0
  4. package/dist/extractor-registry.js.map +1 -0
  5. package/dist/extractors/ava/index.d.ts +23 -0
  6. package/dist/extractors/ava/index.d.ts.map +1 -0
  7. package/dist/extractors/ava/index.js +507 -0
  8. package/dist/extractors/ava/index.js.map +1 -0
  9. package/dist/extractors/ava/index.test.d.ts +7 -0
  10. package/dist/extractors/ava/index.test.d.ts.map +1 -0
  11. package/dist/extractors/ava/index.test.js +408 -0
  12. package/dist/extractors/ava/index.test.js.map +1 -0
  13. package/dist/extractors/eslint/index.d.ts +18 -0
  14. package/dist/extractors/eslint/index.d.ts.map +1 -0
  15. package/dist/extractors/eslint/index.js +206 -0
  16. package/dist/extractors/eslint/index.js.map +1 -0
  17. package/dist/extractors/eslint/index.test.d.ts +9 -0
  18. package/dist/extractors/eslint/index.test.d.ts.map +1 -0
  19. package/dist/extractors/eslint/index.test.js +191 -0
  20. package/dist/extractors/eslint/index.test.js.map +1 -0
  21. package/dist/extractors/generic/index.d.ts +30 -0
  22. package/dist/extractors/generic/index.d.ts.map +1 -0
  23. package/dist/extractors/generic/index.js +140 -0
  24. package/dist/extractors/generic/index.js.map +1 -0
  25. package/dist/extractors/generic/index.test.d.ts +7 -0
  26. package/dist/extractors/generic/index.test.d.ts.map +1 -0
  27. package/dist/extractors/generic/index.test.js +61 -0
  28. package/dist/extractors/generic/index.test.js.map +1 -0
  29. package/dist/extractors/jasmine/index.d.ts +17 -0
  30. package/dist/extractors/jasmine/index.d.ts.map +1 -0
  31. package/dist/extractors/jasmine/index.js +254 -0
  32. package/dist/extractors/jasmine/index.js.map +1 -0
  33. package/dist/extractors/jasmine/index.test.d.ts +7 -0
  34. package/dist/extractors/jasmine/index.test.d.ts.map +1 -0
  35. package/dist/extractors/jasmine/index.test.js +345 -0
  36. package/dist/extractors/jasmine/index.test.js.map +1 -0
  37. package/dist/extractors/jest/index.d.ts +17 -0
  38. package/dist/extractors/jest/index.d.ts.map +1 -0
  39. package/dist/extractors/jest/index.js +278 -0
  40. package/dist/extractors/jest/index.js.map +1 -0
  41. package/dist/extractors/jest/index.test.d.ts +9 -0
  42. package/dist/extractors/jest/index.test.d.ts.map +1 -0
  43. package/dist/extractors/jest/index.test.js +353 -0
  44. package/dist/extractors/jest/index.test.js.map +1 -0
  45. package/dist/extractors/junit/index.d.ts +18 -0
  46. package/dist/extractors/junit/index.d.ts.map +1 -0
  47. package/dist/extractors/junit/index.js +259 -0
  48. package/dist/extractors/junit/index.js.map +1 -0
  49. package/dist/extractors/junit/index.test.d.ts +7 -0
  50. package/dist/extractors/junit/index.test.d.ts.map +1 -0
  51. package/dist/extractors/junit/index.test.js +341 -0
  52. package/dist/extractors/junit/index.test.js.map +1 -0
  53. package/dist/extractors/maven-checkstyle/index.d.ts +23 -0
  54. package/dist/extractors/maven-checkstyle/index.d.ts.map +1 -0
  55. package/dist/extractors/maven-checkstyle/index.js +263 -0
  56. package/dist/extractors/maven-checkstyle/index.js.map +1 -0
  57. package/dist/extractors/maven-checkstyle/index.test.d.ts +2 -0
  58. package/dist/extractors/maven-checkstyle/index.test.d.ts.map +1 -0
  59. package/dist/extractors/maven-checkstyle/index.test.js +197 -0
  60. package/dist/extractors/maven-checkstyle/index.test.js.map +1 -0
  61. package/dist/extractors/maven-compiler/index.d.ts +23 -0
  62. package/dist/extractors/maven-compiler/index.d.ts.map +1 -0
  63. package/dist/extractors/maven-compiler/index.js +271 -0
  64. package/dist/extractors/maven-compiler/index.js.map +1 -0
  65. package/dist/extractors/maven-compiler/index.test.d.ts +2 -0
  66. package/dist/extractors/maven-compiler/index.test.d.ts.map +1 -0
  67. package/dist/extractors/maven-compiler/index.test.js +189 -0
  68. package/dist/extractors/maven-compiler/index.test.js.map +1 -0
  69. package/dist/extractors/maven-surefire/index.d.ts +23 -0
  70. package/dist/extractors/maven-surefire/index.d.ts.map +1 -0
  71. package/dist/extractors/maven-surefire/index.js +292 -0
  72. package/dist/extractors/maven-surefire/index.js.map +1 -0
  73. package/dist/extractors/maven-surefire/index.test.d.ts +2 -0
  74. package/dist/extractors/maven-surefire/index.test.d.ts.map +1 -0
  75. package/dist/extractors/maven-surefire/index.test.js +169 -0
  76. package/dist/extractors/maven-surefire/index.test.js.map +1 -0
  77. package/dist/extractors/mocha/index.d.ts +17 -0
  78. package/dist/extractors/mocha/index.d.ts.map +1 -0
  79. package/dist/extractors/mocha/index.js +241 -0
  80. package/dist/extractors/mocha/index.js.map +1 -0
  81. package/dist/extractors/mocha/index.test.d.ts +7 -0
  82. package/dist/extractors/mocha/index.test.d.ts.map +1 -0
  83. package/dist/extractors/mocha/index.test.js +300 -0
  84. package/dist/extractors/mocha/index.test.js.map +1 -0
  85. package/dist/extractors/playwright/index.d.ts +17 -0
  86. package/dist/extractors/playwright/index.d.ts.map +1 -0
  87. package/dist/extractors/playwright/index.js +320 -0
  88. package/dist/extractors/playwright/index.js.map +1 -0
  89. package/dist/extractors/playwright/index.test.d.ts +7 -0
  90. package/dist/extractors/playwright/index.test.d.ts.map +1 -0
  91. package/dist/extractors/playwright/index.test.js +274 -0
  92. package/dist/extractors/playwright/index.test.js.map +1 -0
  93. package/dist/extractors/tap/index.d.ts +23 -0
  94. package/dist/extractors/tap/index.d.ts.map +1 -0
  95. package/dist/extractors/tap/index.js +352 -0
  96. package/dist/extractors/tap/index.js.map +1 -0
  97. package/dist/extractors/tap/index.test.d.ts +7 -0
  98. package/dist/extractors/tap/index.test.d.ts.map +1 -0
  99. package/dist/extractors/tap/index.test.js +100 -0
  100. package/dist/extractors/tap/index.test.js.map +1 -0
  101. package/dist/extractors/typescript/index.d.ts +17 -0
  102. package/dist/extractors/typescript/index.d.ts.map +1 -0
  103. package/dist/extractors/typescript/index.js +150 -0
  104. package/dist/extractors/typescript/index.js.map +1 -0
  105. package/dist/extractors/typescript/index.test.d.ts +9 -0
  106. package/dist/extractors/typescript/index.test.d.ts.map +1 -0
  107. package/dist/extractors/typescript/index.test.js +177 -0
  108. package/dist/extractors/typescript/index.test.js.map +1 -0
  109. package/dist/extractors/vitest/index.d.ts +17 -0
  110. package/dist/extractors/vitest/index.d.ts.map +1 -0
  111. package/dist/extractors/vitest/index.js +564 -0
  112. package/dist/extractors/vitest/index.js.map +1 -0
  113. package/dist/extractors/vitest/index.test.d.ts +9 -0
  114. package/dist/extractors/vitest/index.test.d.ts.map +1 -0
  115. package/dist/extractors/vitest/index.test.js +373 -0
  116. package/dist/extractors/vitest/index.test.js.map +1 -0
  117. package/dist/index.d.ts +27 -13
  118. package/dist/index.d.ts.map +1 -1
  119. package/dist/index.js +27 -13
  120. package/dist/index.js.map +1 -1
  121. package/dist/maven-compiler-extractor.d.ts +20 -0
  122. package/dist/maven-compiler-extractor.d.ts.map +1 -0
  123. package/dist/maven-compiler-extractor.js +218 -0
  124. package/dist/maven-compiler-extractor.js.map +1 -0
  125. package/dist/maven-utils.d.ts +24 -0
  126. package/dist/maven-utils.d.ts.map +1 -0
  127. package/dist/maven-utils.js +36 -0
  128. package/dist/maven-utils.js.map +1 -0
  129. package/dist/plugin-loader.d.ts +82 -0
  130. package/dist/plugin-loader.d.ts.map +1 -0
  131. package/dist/plugin-loader.js +201 -0
  132. package/dist/plugin-loader.js.map +1 -0
  133. package/dist/result-schema.d.ts +59 -9
  134. package/dist/result-schema.d.ts.map +1 -1
  135. package/dist/result-schema.js +3 -19
  136. package/dist/result-schema.js.map +1 -1
  137. package/dist/sandbox.d.ts +161 -0
  138. package/dist/sandbox.d.ts.map +1 -0
  139. package/dist/sandbox.js +254 -0
  140. package/dist/sandbox.js.map +1 -0
  141. package/dist/sandbox.test.d.ts +8 -0
  142. package/dist/sandbox.test.d.ts.map +1 -0
  143. package/dist/sandbox.test.js +395 -0
  144. package/dist/sandbox.test.js.map +1 -0
  145. package/dist/sandboxed-extractor.d.ts +46 -0
  146. package/dist/sandboxed-extractor.d.ts.map +1 -0
  147. package/dist/sandboxed-extractor.js +172 -0
  148. package/dist/sandboxed-extractor.js.map +1 -0
  149. package/dist/sandboxed-extractor.test.d.ts +5 -0
  150. package/dist/sandboxed-extractor.test.d.ts.map +1 -0
  151. package/dist/sandboxed-extractor.test.js +346 -0
  152. package/dist/sandboxed-extractor.test.js.map +1 -0
  153. package/dist/smart-extractor.d.ts +22 -10
  154. package/dist/smart-extractor.d.ts.map +1 -1
  155. package/dist/smart-extractor.js +116 -186
  156. package/dist/smart-extractor.js.map +1 -1
  157. package/dist/types.d.ts +94 -0
  158. package/dist/types.d.ts.map +1 -1
  159. package/package.json +3 -2
@@ -0,0 +1,169 @@
1
+ import { describe, it, expect } from 'vitest';
2
+ import mavenSurefireExtractor from './index.js';
3
+ describe('Maven Surefire Extractor Plugin', () => {
4
+ describe('metadata', () => {
5
+ it('should have correct plugin metadata', () => {
6
+ expect(mavenSurefireExtractor.metadata.name).toBe('maven-surefire');
7
+ expect(mavenSurefireExtractor.metadata.version).toBe('1.0.0');
8
+ expect(mavenSurefireExtractor.metadata.tags).toContain('maven');
9
+ expect(mavenSurefireExtractor.metadata.tags).toContain('junit');
10
+ });
11
+ it('should have hints for fast filtering', () => {
12
+ expect(mavenSurefireExtractor.hints).toBeDefined();
13
+ expect(mavenSurefireExtractor.hints?.required).toContain('[ERROR]');
14
+ expect(mavenSurefireExtractor.hints?.required).toContain('Tests run:');
15
+ expect(mavenSurefireExtractor.hints?.anyOf).toBeDefined();
16
+ });
17
+ it('should have priority higher than Jasmine to avoid false matches', () => {
18
+ // Regression test: Maven Surefire must have higher priority than Jasmine (90)
19
+ // to prevent Jasmine from incorrectly detecting Maven output
20
+ expect(mavenSurefireExtractor.priority).toBe(95);
21
+ expect(mavenSurefireExtractor.priority).toBeGreaterThan(90); // Higher than Jasmine
22
+ });
23
+ });
24
+ describe('detect', () => {
25
+ it('should detect Maven Surefire output with high confidence', () => {
26
+ const output = `[INFO] Running tests...
27
+ [ERROR] Tests run: 10, Failures: 3, Errors: 1, Skipped: 0
28
+ [ERROR] com.example.FooTest.testBar -- Time elapsed: 0.123 s <<< FAILURE!
29
+ java.lang.AssertionError: Expected 5 but was 3`;
30
+ const result = mavenSurefireExtractor.detect(output);
31
+ expect(result.confidence).toBeGreaterThanOrEqual(70);
32
+ expect(result.patterns).toContain('Test summary (Tests run, Failures, Errors)');
33
+ expect(result.patterns).toContain('Test failure markers');
34
+ expect(result.reason).toContain('Maven Surefire');
35
+ });
36
+ it('should detect JUnit assertion errors', () => {
37
+ const output = `[ERROR] Tests run: 5, Failures: 2, Errors: 0
38
+ [ERROR] testFoo -- Time elapsed: 0.1 s <<< FAILURE!
39
+ org.opentest4j.AssertionFailedError: expected: "foo" but was: "bar"`;
40
+ const result = mavenSurefireExtractor.detect(output);
41
+ expect(result.confidence).toBeGreaterThanOrEqual(70);
42
+ expect(result.patterns).toContain('JUnit assertion errors');
43
+ });
44
+ it('should have low confidence for non-Surefire output', () => {
45
+ const output = `Some random output
46
+ No test markers here`;
47
+ const result = mavenSurefireExtractor.detect(output);
48
+ expect(result.confidence).toBeLessThan(40);
49
+ });
50
+ });
51
+ describe('extract', () => {
52
+ it('should extract test summary', () => {
53
+ const output = `[ERROR] Tests run: 10, Failures: 3, Errors: 1, Skipped: 1`;
54
+ const result = mavenSurefireExtractor.extract(output);
55
+ expect(result.summary).toContain('3 failures, 1 errors');
56
+ });
57
+ it('should extract test failures with stack traces', () => {
58
+ const output = `[ERROR] Tests run: 1, Failures: 1, Errors: 0
59
+ [ERROR] com.example.FooTest.testBar -- Time elapsed: 0.123 s <<< FAILURE!
60
+ java.lang.AssertionError: Expected 5 but was 3
61
+ \tat com.example.FooTest.testBar(FooTest.java:42)
62
+ \tat java.base/java.lang.reflect.Method.invoke(Method.java:565)`;
63
+ const result = mavenSurefireExtractor.extract(output);
64
+ expect(result.totalErrors).toBeGreaterThan(0);
65
+ if (result.errors.length > 0) {
66
+ expect(result.errors[0].file).toContain('FooTest.java');
67
+ expect(result.errors[0].message).toContain('testBar');
68
+ }
69
+ });
70
+ it('should extract NullPointerException errors', () => {
71
+ const output = `[ERROR] Tests run: 1, Failures: 0, Errors: 1
72
+ [ERROR] com.example.FooTest.testNull -- Time elapsed: 0.01 s <<< ERROR!
73
+ java.lang.NullPointerException: Cannot invoke "String.length()" because "value" is null
74
+ \tat com.example.FooTest.testNull(FooTest.java:77)`;
75
+ const result = mavenSurefireExtractor.extract(output);
76
+ expect(result.totalErrors).toBeGreaterThan(0);
77
+ if (result.errors.length > 0) {
78
+ expect(result.errors[0].message).toContain('NullPointerException');
79
+ expect(result.errors[0].line).toBe(77);
80
+ }
81
+ });
82
+ it('should limit errors to MAX_ERRORS_IN_ARRAY', () => {
83
+ // Create 15 test failures
84
+ const failures = Array.from({ length: 15 }, (_, i) => `[ERROR] com.example.Test.test${i} -- Time elapsed: 0.1 s <<< FAILURE!\njava.lang.AssertionError: Test ${i} failed`).join('\n\n');
85
+ const output = `[ERROR] Tests run: 15, Failures: 15, Errors: 0\n${failures}`;
86
+ const result = mavenSurefireExtractor.extract(output);
87
+ expect(result.totalErrors).toBe(15); // All counted
88
+ expect(result.errors.length).toBeLessThanOrEqual(10); // Array limited
89
+ });
90
+ it('should provide guidance', () => {
91
+ const output = `[ERROR] Tests run: 5, Failures: 2, Errors: 0
92
+ [ERROR] com.example.Test.testFoo -- <<< FAILURE!`;
93
+ const result = mavenSurefireExtractor.extract(output);
94
+ expect(result.guidance).toContain('Fix test failures');
95
+ expect(result.guidance).toContain('mvn test');
96
+ });
97
+ it('should extract exception types correctly', () => {
98
+ const output = `[ERROR] Tests run: 1, Failures: 0, Errors: 1
99
+ [ERROR] com.example.Test.testException -- <<< ERROR!
100
+ java.lang.IllegalArgumentException: Invalid format: expected 'XXX' but got 'invalid'
101
+ \tat com.example.Test.testException(Test.java:50)`;
102
+ const result = mavenSurefireExtractor.extract(output);
103
+ expect(result.totalErrors).toBeGreaterThan(0);
104
+ if (result.errors.length > 0) {
105
+ expect(result.errors[0].message).toContain('IllegalArgumentException');
106
+ expect(result.errors[0].message).toContain('Invalid format');
107
+ }
108
+ });
109
+ it('should handle AssertJ assertion errors', () => {
110
+ const output = `[ERROR] Tests run: 1, Failures: 1, Errors: 0
111
+ [ERROR] com.example.Test.testAssertJ -- <<< FAILURE!
112
+ java.lang.AssertionError:
113
+
114
+ Expecting actual:
115
+ "Hello World"
116
+ to contain:
117
+ "Goodbye"
118
+ \tat com.example.Test.testAssertJ(Test.java:25)`;
119
+ const result = mavenSurefireExtractor.extract(output);
120
+ expect(result.totalErrors).toBeGreaterThan(0);
121
+ if (result.errors.length > 0) {
122
+ expect(result.errors[0].message).toContain('AssertionError');
123
+ // Line number extraction is best-effort from stack traces
124
+ if (result.errors[0].line) {
125
+ expect(result.errors[0].line).toBe(25);
126
+ }
127
+ }
128
+ });
129
+ it('should return low confidence for non-test output', () => {
130
+ const output = `[INFO] Building project...
131
+ [INFO] Success!`;
132
+ const result = mavenSurefireExtractor.extract(output);
133
+ expect(result.totalErrors).toBe(0);
134
+ expect(result.summary).toContain('Not Maven test output');
135
+ expect(result.metadata?.detection?.confidence).toBeLessThan(40);
136
+ });
137
+ });
138
+ describe('samples', () => {
139
+ it('should have test samples', () => {
140
+ expect(mavenSurefireExtractor.samples).toBeDefined();
141
+ expect(mavenSurefireExtractor.samples.length).toBeGreaterThan(0);
142
+ });
143
+ it('should validate basic-assertion-failure sample', () => {
144
+ const sample = mavenSurefireExtractor.samples?.find((s) => s.name === 'basic-assertion-failure');
145
+ expect(sample).toBeDefined();
146
+ if (sample && 'input' in sample && sample.input) {
147
+ const result = mavenSurefireExtractor.extract(sample.input);
148
+ expect(result.totalErrors).toBe(sample.expected.totalErrors);
149
+ }
150
+ });
151
+ it('should validate null-pointer-exception sample', () => {
152
+ const sample = mavenSurefireExtractor.samples?.find((s) => s.name === 'null-pointer-exception');
153
+ expect(sample).toBeDefined();
154
+ if (sample && 'input' in sample && sample.input) {
155
+ const result = mavenSurefireExtractor.extract(sample.input);
156
+ expect(result.totalErrors).toBe(sample.expected.totalErrors);
157
+ }
158
+ });
159
+ it('should validate assertj-failure sample', () => {
160
+ const sample = mavenSurefireExtractor.samples?.find((s) => s.name === 'assertj-failure');
161
+ expect(sample).toBeDefined();
162
+ if (sample && 'input' in sample && sample.input) {
163
+ const result = mavenSurefireExtractor.extract(sample.input);
164
+ expect(result.totalErrors).toBe(sample.expected.totalErrors);
165
+ }
166
+ });
167
+ });
168
+ });
169
+ //# sourceMappingURL=index.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../../src/extractors/maven-surefire/index.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Mocha Error Extractor Plugin
3
+ *
4
+ * Parses and formats Mocha test output for LLM consumption.
5
+ *
6
+ * @package @vibe-validate/extractors
7
+ */
8
+ import type { ExtractorPlugin } from '../../types.js';
9
+ /**
10
+ * Mocha Error Extractor Plugin
11
+ *
12
+ * Extracts Mocha test framework errors with 85% confidence.
13
+ * Parses test hierarchies, error types, and stack traces.
14
+ */
15
+ declare const mochaPlugin: ExtractorPlugin;
16
+ export default mochaPlugin;
17
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/extractors/mocha/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EACV,eAAe,EAIhB,MAAM,gBAAgB,CAAC;AAgPxB;;;;;GAKG;AACH,QAAA,MAAM,WAAW,EAAE,eAiBlB,CAAC;AAEF,eAAe,WAAW,CAAC"}
@@ -0,0 +1,241 @@
1
+ /**
2
+ * Mocha Error Extractor Plugin
3
+ *
4
+ * Parses and formats Mocha test output for LLM consumption.
5
+ *
6
+ * @package @vibe-validate/extractors
7
+ */
8
+ import { processTestFailures } from '../../utils/test-framework-utils.js';
9
+ /**
10
+ * Extract failure information from Mocha output
11
+ */
12
+ // eslint-disable-next-line sonarjs/cognitive-complexity -- Complexity 30 acceptable for Mocha output parsing (handles test hierarchies, error messages, and stack trace extraction)
13
+ function extractFailures(output) {
14
+ const failures = [];
15
+ const lines = output.split('\n');
16
+ let i = 0;
17
+ while (i < lines.length) {
18
+ const line = lines[i];
19
+ // Look for numbered failure markers (e.g., " 1) ")
20
+ // Only match detailed format (2 spaces), not summary format (6+ spaces)
21
+ // eslint-disable-next-line sonarjs/slow-regex -- Safe: only parses Mocha test framework output (controlled output), not user input
22
+ const failureMatch = /^ {2}(\d+)\)\s+(.*)$/.exec(line);
23
+ if (failureMatch) {
24
+ // failureMatch[1] contains the failure number (not used - test name is more important)
25
+ const firstPart = failureMatch[2].trim();
26
+ // Collect test hierarchy lines
27
+ const testNameParts = [];
28
+ // Check if first part ends with colon (simple format: "1) Test:")
29
+ const isSimpleFormat = firstPart.endsWith(':');
30
+ if (firstPart) {
31
+ testNameParts.push(firstPart.replace(/:$/, '')); // Remove trailing colon
32
+ }
33
+ let j = i + 1;
34
+ // If simple format, don't try to collect more hierarchy
35
+ if (!isSimpleFormat) {
36
+ // Continue collecting hierarchy lines until we hit blank line or error
37
+ while (j < lines.length) {
38
+ const nextLine = lines[j];
39
+ // Blank line marks end of hierarchy
40
+ if (nextLine.trim() === '') {
41
+ break;
42
+ }
43
+ // Error line marks end of hierarchy
44
+ if (/^\s+(Error|AssertionError|TypeError)/.exec(nextLine)) {
45
+ break;
46
+ }
47
+ // Indented lines are part of hierarchy (at least 5 spaces for Mocha)
48
+ if (/^\s{5,}\S/.exec(nextLine)) {
49
+ const part = nextLine.trim().replace(/:$/, ''); // Remove trailing colon
50
+ testNameParts.push(part);
51
+ }
52
+ j++;
53
+ }
54
+ }
55
+ const testName = testNameParts.join(' > ');
56
+ // Now scan for error message and stack trace
57
+ let message;
58
+ let errorType;
59
+ let file;
60
+ let lineNumber;
61
+ // Continue from where we left off
62
+ while (j < lines.length && j < i + 40) {
63
+ const nextLine = lines[j];
64
+ // Stop if we hit the next failure
65
+ if (/^\s+\d+\)\s+/.exec(nextLine)) {
66
+ break;
67
+ }
68
+ // Extract error type and message
69
+ // Pattern 1: " AssertionError [ERR_ASSERTION]: Expected..."
70
+ // Pattern 2: " Error: ENOENT: no such file..."
71
+ // Pattern 3: " TypeError: Cannot read..."
72
+ if (!message) {
73
+ // Match plain "Error" or prefixed errors like "TypeError", "AssertionError"
74
+ const errorMatch = /^\s+([A-Za-z]*Error)(?:\s\[\w+\])?\s*:\s*(.+)/.exec(nextLine);
75
+ if (errorMatch) {
76
+ errorType = errorMatch[1];
77
+ message = errorMatch[2].trim();
78
+ }
79
+ }
80
+ // Extract file location from stack trace
81
+ if (!file && nextLine.includes('at Context.<anonymous>')) {
82
+ // Match various path formats:
83
+ // - file:///path/to/file.js:10:20
84
+ // - /absolute/path/file.js:10:20
85
+ // - relative/path/file.js:10:20
86
+ const locationMatch = /at Context\.<anonymous> \((?:file:\/\/)?([^:)]+):(\d+)(?::(\d+))?\)/.exec(nextLine);
87
+ if (locationMatch) {
88
+ file = locationMatch[1];
89
+ lineNumber = Number.parseInt(locationMatch[2], 10);
90
+ }
91
+ }
92
+ // Extract file from timeout error messages: "Error: Timeout... (/path/to/file.js)"
93
+ if (!file && message?.includes('Timeout')) {
94
+ // eslint-disable-next-line sonarjs/slow-regex -- Safe: only parses Mocha test framework timeout messages (controlled output), not user input
95
+ const timeoutFileMatch = /\(([^)]+\.(?:js|ts|mjs|cjs))\)/.exec(message);
96
+ if (timeoutFileMatch) {
97
+ file = timeoutFileMatch[1];
98
+ }
99
+ }
100
+ j++;
101
+ }
102
+ failures.push({
103
+ testName,
104
+ message,
105
+ errorType,
106
+ file,
107
+ line: lineNumber
108
+ });
109
+ i = j; // Skip to after this failure
110
+ }
111
+ else {
112
+ i++;
113
+ }
114
+ }
115
+ return failures;
116
+ }
117
+ /**
118
+ * Extract errors from Mocha test output
119
+ *
120
+ * @param output - Mocha text output
121
+ * @returns Structured error information
122
+ */
123
+ function extract(output) {
124
+ // Check if this looks like Mocha output
125
+ if (!output.includes('failing') && !output.includes('passing')) {
126
+ return {
127
+ summary: 'Unable to parse Mocha output - invalid format',
128
+ errors: [],
129
+ totalErrors: 0,
130
+ errorSummary: output.trim(),
131
+ guidance: 'Ensure the input is valid Mocha test output',
132
+ metadata: {
133
+ confidence: 0,
134
+ completeness: 0,
135
+ issues: ['Not Mocha output format']
136
+ }
137
+ };
138
+ }
139
+ // Extract failure count
140
+ // eslint-disable-next-line sonarjs/slow-regex -- Safe: only parses Mocha test framework summary (controlled output), not user input
141
+ const failingMatch = /(\d+) failing/.exec(output);
142
+ const failureCount = failingMatch ? Number.parseInt(failingMatch[1], 10) : 0;
143
+ // Extract all failures
144
+ const failures = extractFailures(output);
145
+ // Early return if no failures detected (but failure count suggested there should be)
146
+ if (failureCount === 0 && failures.length === 0) {
147
+ return processTestFailures([], 95);
148
+ }
149
+ // Process failures using shared utility
150
+ return processTestFailures(failures, 95);
151
+ }
152
+ /**
153
+ * Detect if output is from Mocha test framework
154
+ *
155
+ * @param output - Command output to analyze
156
+ * @returns Detection result with confidence and patterns
157
+ */
158
+ function detect(output) {
159
+ if (output.includes('failing') || output.includes('passing')) {
160
+ return {
161
+ confidence: 85,
162
+ patterns: ['failing/passing pattern'],
163
+ reason: 'Mocha test framework output detected',
164
+ };
165
+ }
166
+ return { confidence: 0, patterns: [], reason: '' };
167
+ }
168
+ /**
169
+ * Sample test cases for Mocha extractor
170
+ */
171
+ const samples = [
172
+ {
173
+ name: 'single-assertion-error',
174
+ description: 'Single Mocha test failure with AssertionError',
175
+ input: `
176
+ Vibe-Validate Mocha Test Matrix
177
+ Failure Type 1: Assertion Errors
178
+ 1) should match expected value
179
+
180
+ 0 passing (10ms)
181
+ 1 failing
182
+
183
+ 1) Vibe-Validate Mocha Test Matrix
184
+ Failure Type 1: Assertion Errors
185
+ should match expected value:
186
+
187
+ AssertionError [ERR_ASSERTION]: Expected 4 to equal 5
188
+ at Context.<anonymous> (file:///tmp/test.js:16:14)
189
+ `,
190
+ expectedErrors: 1,
191
+ expectedPatterns: ['AssertionError', 'Expected 4 to equal 5'],
192
+ },
193
+ {
194
+ name: 'multiple-test-failures',
195
+ description: 'Multiple Mocha test failures with different error types',
196
+ input: `
197
+ 0 passing (20ms)
198
+ 3 failing
199
+
200
+ 1) Suite > Test 1:
201
+ Error: First error
202
+ at Context.<anonymous> (test.js:10:15)
203
+
204
+ 2) Suite > Test 2:
205
+ TypeError: Cannot read properties of null
206
+ at Context.<anonymous> (test.js:20:15)
207
+
208
+ 3) Suite > Test 3:
209
+ AssertionError: Values not equal
210
+ at Context.<anonymous> (test.js:30:15)
211
+ `,
212
+ expectedErrors: 3,
213
+ expectedPatterns: ['First error', 'TypeError', 'AssertionError'],
214
+ },
215
+ ];
216
+ /**
217
+ * Mocha Error Extractor Plugin
218
+ *
219
+ * Extracts Mocha test framework errors with 85% confidence.
220
+ * Parses test hierarchies, error types, and stack traces.
221
+ */
222
+ const mochaPlugin = {
223
+ metadata: {
224
+ name: 'mocha',
225
+ version: '1.0.0',
226
+ author: 'vibe-validate',
227
+ description: 'Extracts Mocha test framework errors',
228
+ repository: 'https://github.com/jdutton/vibe-validate',
229
+ tags: ['mocha', 'testing', 'javascript'],
230
+ },
231
+ hints: {
232
+ required: ['failing'],
233
+ anyOf: ['passing'],
234
+ },
235
+ priority: 85,
236
+ detect,
237
+ extract,
238
+ samples,
239
+ };
240
+ export default mochaPlugin;
241
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/extractors/mocha/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Mocha Error Extractor Plugin Tests
3
+ *
4
+ * @package @vibe-validate/extractors
5
+ */
6
+ export {};
7
+ //# sourceMappingURL=index.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.test.d.ts","sourceRoot":"","sources":["../../../src/extractors/mocha/index.test.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}