@vibe-validate/extractors 0.18.0-rc.1 → 0.18.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.
- package/dist/extractors/ava/index.test.js +17 -17
- package/dist/extractors/ava/index.test.js.map +1 -1
- package/dist/extractors/eslint/index.test.js +57 -52
- package/dist/extractors/eslint/index.test.js.map +1 -1
- package/dist/extractors/generic/index.test.js +34 -0
- package/dist/extractors/generic/index.test.js.map +1 -1
- package/dist/extractors/jasmine/index.test.js +37 -30
- 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 +1 -4
- package/dist/extractors/jest/index.js.map +1 -1
- package/dist/extractors/jest/index.test.js +45 -44
- package/dist/extractors/jest/index.test.js.map +1 -1
- package/dist/extractors/junit/index.test.js +30 -33
- package/dist/extractors/junit/index.test.js.map +1 -1
- package/dist/extractors/maven-checkstyle/index.test.js +32 -29
- package/dist/extractors/maven-checkstyle/index.test.js.map +1 -1
- package/dist/extractors/maven-compiler/index.test.js +31 -26
- package/dist/extractors/maven-compiler/index.test.js.map +1 -1
- package/dist/extractors/maven-surefire/index.test.js +26 -24
- package/dist/extractors/maven-surefire/index.test.js.map +1 -1
- package/dist/extractors/mocha/index.test.js +27 -22
- package/dist/extractors/mocha/index.test.js.map +1 -1
- package/dist/extractors/playwright/index.test.js +26 -21
- package/dist/extractors/playwright/index.test.js.map +1 -1
- package/dist/extractors/tap/index.test.js +13 -10
- package/dist/extractors/tap/index.test.js.map +1 -1
- package/dist/extractors/typescript/index.test.js +52 -43
- 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 +71 -30
- package/dist/extractors/vitest/index.js.map +1 -1
- package/dist/extractors/vitest/index.test.js +103 -59
- package/dist/extractors/vitest/index.test.js.map +1 -1
- package/dist/test/helpers/extractor-test-helpers.d.ts +196 -0
- package/dist/test/helpers/extractor-test-helpers.d.ts.map +1 -0
- package/dist/test/helpers/extractor-test-helpers.js +238 -0
- package/dist/test/helpers/extractor-test-helpers.js.map +1 -0
- package/dist/test/helpers/max-errors-helper.d.ts +62 -0
- package/dist/test/helpers/max-errors-helper.d.ts.map +1 -0
- package/dist/test/helpers/max-errors-helper.js +75 -0
- package/dist/test/helpers/max-errors-helper.js.map +1 -0
- package/package.json +6 -2
|
@@ -6,21 +6,24 @@
|
|
|
6
6
|
* @package @vibe-validate/extractors
|
|
7
7
|
*/
|
|
8
8
|
import { describe, it, expect } from 'vitest';
|
|
9
|
+
import { expectDetection, expectEmptyExtraction, expectErrorObject, expectExtractionResult, expectPluginMetadata, } from '../../test/helpers/extractor-test-helpers.js';
|
|
9
10
|
import typescriptPlugin from './index.js';
|
|
10
|
-
const { extract
|
|
11
|
+
const { extract } = typescriptPlugin;
|
|
11
12
|
describe('TypeScript Extractor Plugin', () => {
|
|
12
13
|
describe('detect', () => {
|
|
13
14
|
it('should detect TypeScript errors with high confidence', () => {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
15
|
+
expectDetection(typescriptPlugin, `src/index.ts(10,5): error TS2322: Type 'string' is not assignable to type 'number'.`, {
|
|
16
|
+
confidence: 95,
|
|
17
|
+
patterns: ['error TS#### pattern'],
|
|
18
|
+
reasonContains: 'TypeScript compiler',
|
|
19
|
+
});
|
|
20
|
+
expect(typescriptPlugin).toBeDefined();
|
|
19
21
|
});
|
|
20
22
|
it('should not detect non-TypeScript output', () => {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
23
|
+
expectDetection(typescriptPlugin, 'Some random text without TypeScript errors', {
|
|
24
|
+
confidence: 0,
|
|
25
|
+
});
|
|
26
|
+
expect(typescriptPlugin).toBeDefined();
|
|
24
27
|
});
|
|
25
28
|
});
|
|
26
29
|
describe('extract', () => {
|
|
@@ -29,17 +32,19 @@ describe('TypeScript Extractor Plugin', () => {
|
|
|
29
32
|
src/index.ts(10,5): error TS2322: Type 'string' is not assignable to type 'number'.
|
|
30
33
|
`.trim();
|
|
31
34
|
const result = extract(output);
|
|
32
|
-
expect(result
|
|
33
|
-
|
|
35
|
+
expect(result).toBeDefined();
|
|
36
|
+
expectExtractionResult(result, {
|
|
37
|
+
errorCount: 1,
|
|
38
|
+
summaryPattern: '1 type error(s), 0 warning(s)',
|
|
39
|
+
});
|
|
40
|
+
expectErrorObject(result.errors[0], {
|
|
34
41
|
file: 'src/index.ts',
|
|
35
42
|
line: 10,
|
|
36
43
|
column: 5,
|
|
37
44
|
severity: 'error',
|
|
38
45
|
code: 'TS2322',
|
|
39
|
-
|
|
46
|
+
messageContains: "Type 'string' is not assignable to type 'number'.",
|
|
40
47
|
});
|
|
41
|
-
expect(result.summary).toBe('1 type error(s), 0 warning(s)');
|
|
42
|
-
expect(result.totalErrors).toBe(1);
|
|
43
48
|
});
|
|
44
49
|
it('should parse multiple TypeScript errors', () => {
|
|
45
50
|
const output = `
|
|
@@ -48,16 +53,22 @@ src/config.ts(25,12): error TS2304: Cannot find name 'process'.
|
|
|
48
53
|
src/utils.ts(100,3): warning TS6133: 'unusedVar' is declared but never used.
|
|
49
54
|
`.trim();
|
|
50
55
|
const result = extract(output);
|
|
51
|
-
expect(result
|
|
52
|
-
|
|
53
|
-
|
|
56
|
+
expect(result).toBeDefined();
|
|
57
|
+
expectExtractionResult(result, {
|
|
58
|
+
errorCount: 3,
|
|
59
|
+
summaryPattern: '2 type error(s), 1 warning(s)',
|
|
60
|
+
});
|
|
54
61
|
// Verify first error
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
62
|
+
expectErrorObject(result.errors[0], {
|
|
63
|
+
file: 'src/index.ts',
|
|
64
|
+
severity: 'error',
|
|
65
|
+
code: 'TS2322',
|
|
66
|
+
});
|
|
58
67
|
// Verify warning
|
|
59
|
-
|
|
60
|
-
|
|
68
|
+
expectErrorObject(result.errors[2], {
|
|
69
|
+
severity: 'warning',
|
|
70
|
+
code: 'TS6133',
|
|
71
|
+
});
|
|
61
72
|
});
|
|
62
73
|
it('should limit output to first 10 errors', () => {
|
|
63
74
|
// Generate 15 errors
|
|
@@ -119,10 +130,9 @@ src/config.ts(25,12): error TS2304: Cannot find name 'process'.
|
|
|
119
130
|
expect(result.errorSummary).toContain('src/config.ts:25:12 - TS2304:');
|
|
120
131
|
});
|
|
121
132
|
it('should handle empty output', () => {
|
|
133
|
+
expectEmptyExtraction(extract, '0 type error(s), 0 warning(s)');
|
|
134
|
+
// Verify guidance is present
|
|
122
135
|
const result = extract('');
|
|
123
|
-
expect(result.errors).toHaveLength(0);
|
|
124
|
-
expect(result.summary).toBe('0 type error(s), 0 warning(s)');
|
|
125
|
-
expect(result.totalErrors).toBe(0);
|
|
126
136
|
expect(result.guidance).toBe('Fix TypeScript type errors in listed files');
|
|
127
137
|
});
|
|
128
138
|
it('should handle output with no matches', () => {
|
|
@@ -131,9 +141,8 @@ Some random text
|
|
|
131
141
|
That does not match
|
|
132
142
|
The TypeScript error format
|
|
133
143
|
`.trim();
|
|
134
|
-
|
|
135
|
-
expect(
|
|
136
|
-
expect(result.summary).toBe('0 type error(s), 0 warning(s)');
|
|
144
|
+
expectEmptyExtraction(() => extract(output), '0 type error(s), 0 warning(s)');
|
|
145
|
+
expect(typescriptPlugin).toBeDefined();
|
|
137
146
|
});
|
|
138
147
|
it('should handle files with spaces in path', () => {
|
|
139
148
|
const output = `
|
|
@@ -144,29 +153,29 @@ src/my folder/index.ts(10,5): error TS2322: Type error.
|
|
|
144
153
|
expect(result.errors[0].file).toBe('src/my folder/index.ts');
|
|
145
154
|
});
|
|
146
155
|
it('should truncate errors array to MAX_ERRORS_IN_ARRAY but preserve totalErrors count', async () => {
|
|
147
|
-
|
|
148
|
-
const { MAX_ERRORS_IN_ARRAY } = await import('../../result-schema.js');
|
|
156
|
+
const { expectMaxErrorsTruncation } = await import('../../test/helpers/max-errors-helper.js');
|
|
149
157
|
// Generate 15 TypeScript errors (more than MAX_ERRORS_IN_ARRAY = 10)
|
|
150
158
|
const errors = Array.from({ length: 15 }, (_, i) => `src/file${i + 1}.ts(${i + 1},5): error TS2322: Type error ${i + 1}.`);
|
|
151
159
|
const output = errors.join('\n');
|
|
152
160
|
const result = extract(output);
|
|
153
|
-
//
|
|
154
|
-
expect(result.
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
// Summary should show full count (15)
|
|
162
|
-
expect(result.summary).toBe('15 type error(s), 0 warning(s)');
|
|
161
|
+
// Verify truncation behavior (assertions in helper)
|
|
162
|
+
expect(result.errors.length).toBeGreaterThan(0);
|
|
163
|
+
await expectMaxErrorsTruncation(result, {
|
|
164
|
+
totalCount: 15,
|
|
165
|
+
firstError: 'src/file1.ts',
|
|
166
|
+
lastTruncatedError: 'src/file10.ts',
|
|
167
|
+
summaryPattern: '15 type error(s), 0 warning(s)'
|
|
168
|
+
});
|
|
163
169
|
});
|
|
164
170
|
});
|
|
165
171
|
describe('plugin metadata', () => {
|
|
166
172
|
it('should have correct metadata', () => {
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
173
|
+
expectPluginMetadata(typescriptPlugin, {
|
|
174
|
+
name: 'typescript',
|
|
175
|
+
priority: 95,
|
|
176
|
+
requiredHints: ['error TS'],
|
|
177
|
+
});
|
|
178
|
+
expect(typescriptPlugin).toBeDefined();
|
|
170
179
|
});
|
|
171
180
|
it('should include sample test cases', () => {
|
|
172
181
|
expect(typescriptPlugin.samples).toBeDefined();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../../src/extractors/typescript/index.test.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAE9C,OAAO,gBAAgB,MAAM,YAAY,CAAC;AAE1C,MAAM,EAAE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../../src/extractors/typescript/index.test.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAE9C,OAAO,EACL,eAAe,EACf,qBAAqB,EACrB,iBAAiB,EACjB,sBAAsB,EACtB,oBAAoB,GACrB,MAAM,8CAA8C,CAAC;AAEtD,OAAO,gBAAgB,MAAM,YAAY,CAAC;AAE1C,MAAM,EAAE,OAAO,EAAE,GAAG,gBAAgB,CAAC;AAErC,QAAQ,CAAC,6BAA6B,EAAE,GAAG,EAAE;IAC3C,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;QACtB,EAAE,CAAC,sDAAsD,EAAE,GAAG,EAAE;YAC9D,eAAe,CACb,gBAAgB,EAChB,qFAAqF,EACrF;gBACE,UAAU,EAAE,EAAE;gBACd,QAAQ,EAAE,CAAC,sBAAsB,CAAC;gBAClC,cAAc,EAAE,qBAAqB;aACtC,CACF,CAAC;YACF,MAAM,CAAC,gBAAgB,CAAC,CAAC,WAAW,EAAE,CAAC;QACzC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;YACjD,eAAe,CAAC,gBAAgB,EAAE,4CAA4C,EAAE;gBAC9E,UAAU,EAAE,CAAC;aACd,CAAC,CAAC;YACL,MAAM,CAAC,gBAAgB,CAAC,CAAC,WAAW,EAAE,CAAC;QACvC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE;QACvB,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;YAC9C,MAAM,MAAM,GAAG;;KAEhB,CAAC,IAAI,EAAE,CAAC;YAEP,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;YAE/B,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YAC7B,sBAAsB,CAAC,MAAM,EAAE;gBAC7B,UAAU,EAAE,CAAC;gBACb,cAAc,EAAE,+BAA+B;aAChD,CAAC,CAAC;YAEH,iBAAiB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;gBAClC,IAAI,EAAE,cAAc;gBACpB,IAAI,EAAE,EAAE;gBACR,MAAM,EAAE,CAAC;gBACT,QAAQ,EAAE,OAAO;gBACjB,IAAI,EAAE,QAAQ;gBACd,eAAe,EAAE,mDAAmD;aACrE,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;YACjD,MAAM,MAAM,GAAG;;;;KAIhB,CAAC,IAAI,EAAE,CAAC;YAEP,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;YAE/B,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YAC7B,sBAAsB,CAAC,MAAM,EAAE;gBAC7B,UAAU,EAAE,CAAC;gBACb,cAAc,EAAE,+BAA+B;aAChD,CAAC,CAAC;YAEH,qBAAqB;YACrB,iBAAiB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;gBAClC,IAAI,EAAE,cAAc;gBACpB,QAAQ,EAAE,OAAO;gBACjB,IAAI,EAAE,QAAQ;aACf,CAAC,CAAC;YAEH,iBAAiB;YACjB,iBAAiB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;gBAClC,QAAQ,EAAE,SAAS;gBACnB,IAAI,EAAE,QAAQ;aACf,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;YAChD,qBAAqB;YACrB,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CACvB,EAAE,MAAM,EAAE,EAAE,EAAE,EACd,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,GAAG,CAAC,GAAG,CAC5E,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAEb,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;YAE/B,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACpC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;YACvC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;QAChE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;YAC3D,MAAM,MAAM,GAAG;;KAEhB,CAAC,IAAI,EAAE,CAAC;YAEP,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;YAE/B,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;YACnD,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,gCAAgC,CAAC,CAAC;QACtE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;YAC1D,MAAM,MAAM,GAAG;;KAEhB,CAAC,IAAI,EAAE,CAAC;YAEP,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;YAE/B,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;YACtD,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,oCAAoC,CAAC,CAAC;QAC1E,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4DAA4D,EAAE,GAAG,EAAE;YACpE,MAAM,MAAM,GAAG;;KAEhB,CAAC,IAAI,EAAE,CAAC;YAEP,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;YAE/B,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,wBAAwB,CAAC,CAAC;YAC5D,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,2BAA2B,CAAC,CAAC;QACjE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,0DAA0D,EAAE,GAAG,EAAE;YAClE,MAAM,MAAM,GAAG;;KAEhB,CAAC,IAAI,EAAE,CAAC;YAEP,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;YAE/B,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;QAC7E,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;YACnD,MAAM,MAAM,GAAG;;;;KAIhB,CAAC,IAAI,EAAE,CAAC;YAEP,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;YAE/B,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;YACnD,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;YACtD,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,wBAAwB,CAAC,CAAC;QAC9D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,2DAA2D,EAAE,GAAG,EAAE;YACnE,MAAM,MAAM,GAAG;;;KAGhB,CAAC,IAAI,EAAE,CAAC;YAEP,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;YAE/B,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,6BAA6B,CAAC,CAAC;YACrE,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,+BAA+B,CAAC,CAAC;QACzE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;YACpC,qBAAqB,CAAC,OAAO,EAAE,+BAA+B,CAAC,CAAC;YAEhE,6BAA6B;YAC7B,MAAM,MAAM,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC;YAC3B,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;QAC7E,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;YAC9C,MAAM,MAAM,GAAG;;;;KAIhB,CAAC,IAAI,EAAE,CAAC;YAEP,qBAAqB,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,+BAA+B,CAAC,CAAC;YAC9E,MAAM,CAAC,gBAAgB,CAAC,CAAC,WAAW,EAAE,CAAC;QACzC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;YACjD,MAAM,MAAM,GAAG;;KAEhB,CAAC,IAAI,EAAE,CAAC;YAEP,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;YAE/B,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YACtC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;QAC/D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oFAAoF,EAAE,KAAK,IAAI,EAAE;YAClG,MAAM,EAAE,yBAAyB,EAAE,GAAG,MAAM,MAAM,CAAC,yCAAyC,CAAC,CAAC;YAE9F,qEAAqE;YACrE,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CACvB,EAAE,MAAM,EAAE,EAAE,EAAE,EACd,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,GAAG,CAAC,GAAG,CAChF,CAAC;YACF,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAEjC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;YAE/B,oDAAoD;YACpD,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;YAChD,MAAM,yBAAyB,CAAC,MAAM,EAAE;gBACtC,UAAU,EAAE,EAAE;gBACd,UAAU,EAAE,cAAc;gBAC1B,kBAAkB,EAAE,eAAe;gBACnC,cAAc,EAAE,gCAAgC;aACjD,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;QAC/B,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;YACtC,oBAAoB,CAAC,gBAAgB,EAAE;gBACrC,IAAI,EAAE,YAAY;gBAClB,QAAQ,EAAE,EAAE;gBACZ,aAAa,EAAE,CAAC,UAAU,CAAC;aAC5B,CAAC,CAAC;YACL,MAAM,CAAC,gBAAgB,CAAC,CAAC,WAAW,EAAE,CAAC;QACvC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;YAC1C,MAAM,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;YAC/C,MAAM,CAAC,gBAAgB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QAC7D,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/extractors/vitest/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EACV,eAAe,EAIhB,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/extractors/vitest/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EACV,eAAe,EAIhB,MAAM,gBAAgB,CAAC;AAmrBxB;;;;;GAKG;AACH,QAAA,MAAM,YAAY,EAAE,eAiBnB,CAAC;AAEF,eAAe,YAAY,CAAC"}
|
|
@@ -208,7 +208,7 @@ function formatFailuresOutput(failures, expected, actual) {
|
|
|
208
208
|
if (f.sourceLine) {
|
|
209
209
|
parts.push('', f.sourceLine);
|
|
210
210
|
}
|
|
211
|
-
return parts.filter(
|
|
211
|
+
return parts.filter(Boolean).join('\n');
|
|
212
212
|
})
|
|
213
213
|
.join('\n\n');
|
|
214
214
|
}
|
|
@@ -256,36 +256,79 @@ function generateGuidanceText(failureCount, expected, actual, hasTimeout) {
|
|
|
256
256
|
return guidance;
|
|
257
257
|
}
|
|
258
258
|
/**
|
|
259
|
-
* Extract
|
|
259
|
+
* Extract location from unhandled rejection stack trace
|
|
260
|
+
* Prefers user code locations over node:internal
|
|
260
261
|
*
|
|
261
|
-
* @param
|
|
262
|
-
* @returns
|
|
262
|
+
* @param section - Unhandled rejection section text
|
|
263
|
+
* @returns File path and location string
|
|
264
|
+
*
|
|
265
|
+
* @internal
|
|
263
266
|
*/
|
|
264
|
-
function
|
|
265
|
-
|
|
266
|
-
// eslint-disable-next-line sonarjs/slow-regex -- Safe: only parses Vitest test framework runtime errors (controlled output), not user input
|
|
267
|
-
const unhandledMatch = /⎯+\s*Unhandled Rejection\s*⎯+\s*\n\s*(Error:[^\n]+(?:\n\s*[^\n❯⎯]+)?)/.exec(output);
|
|
268
|
-
if (!unhandledMatch) {
|
|
269
|
-
return null;
|
|
270
|
-
}
|
|
271
|
-
// Error message may span multiple lines (e.g., path on next line)
|
|
272
|
-
const errorMessage = unhandledMatch[1].trim().replaceAll(/\n\s+/g, ' ');
|
|
273
|
-
// Extract location from stack trace (❯ function file:line:col)
|
|
274
|
-
// File path may contain colons (e.g., node:internal/fs/promises), so match ❯ function filepath:number:number
|
|
275
|
-
const locationMatch = /❯\s+\S+\s+([\w:/.]+):(\d+):(\d+)/.exec(output);
|
|
267
|
+
function extractRejectionLocation(section) {
|
|
268
|
+
const lines = section.split('\n');
|
|
276
269
|
let file = 'unknown';
|
|
277
270
|
let location = '';
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
271
|
+
let fallbackFile = '';
|
|
272
|
+
let fallbackLocation = '';
|
|
273
|
+
for (const line of lines) {
|
|
274
|
+
// Match ❯ marker with location (file path may contain colons, dashes, dots, slashes)
|
|
275
|
+
const locationMatch = /❯\s+\S+\s+([\w:/.@-]+):(\d+):(\d+)/.exec(line);
|
|
276
|
+
if (locationMatch) {
|
|
277
|
+
const filepath = locationMatch[1];
|
|
278
|
+
const loc = `${filepath}:${locationMatch[2]}:${locationMatch[3]}`;
|
|
279
|
+
// Prefer user code locations over node:internal
|
|
280
|
+
if (!filepath.startsWith('node:internal')) {
|
|
281
|
+
file = filepath;
|
|
282
|
+
location = loc;
|
|
283
|
+
break;
|
|
284
|
+
}
|
|
285
|
+
else if (!fallbackFile) {
|
|
286
|
+
// Save first node:internal location as fallback
|
|
287
|
+
fallbackFile = filepath;
|
|
288
|
+
fallbackLocation = loc;
|
|
289
|
+
}
|
|
290
|
+
}
|
|
281
291
|
}
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
292
|
+
// Use fallback if no user code location found
|
|
293
|
+
if (file === 'unknown' && fallbackFile) {
|
|
294
|
+
file = fallbackFile;
|
|
295
|
+
location = fallbackLocation;
|
|
296
|
+
}
|
|
297
|
+
return { file, location };
|
|
298
|
+
}
|
|
299
|
+
/**
|
|
300
|
+
* Extract runtime errors (Unhandled Rejection, ENOENT, etc.)
|
|
301
|
+
*
|
|
302
|
+
* @param output - Full test output
|
|
303
|
+
* @returns Array of test failure objects for all runtime errors found
|
|
304
|
+
*/
|
|
305
|
+
function extractRuntimeErrors(output) {
|
|
306
|
+
const failures = [];
|
|
307
|
+
// Split output by unhandled rejection markers to find all occurrences
|
|
308
|
+
// eslint-disable-next-line sonarjs/slow-regex -- Safe: only parses Vitest test framework section headers (controlled output), limited line length
|
|
309
|
+
const rejectionSections = output.split(/⎯+\s*Unhandled Rejection\s*⎯+/);
|
|
310
|
+
// Skip first section (before any rejection markers)
|
|
311
|
+
for (let i = 1; i < rejectionSections.length; i++) {
|
|
312
|
+
const section = rejectionSections[i];
|
|
313
|
+
// Extract error type and message (first non-empty line)
|
|
314
|
+
// Match patterns like: "TypeError: message", "Error: message", "ReferenceError: message"
|
|
315
|
+
const errorMatch = /^\s*((?:Type|Reference|Range|Syntax)?Error:[^\n]+(?:\n\s*[^\n❯⎯]+)?)/.exec(section);
|
|
316
|
+
if (!errorMatch) {
|
|
317
|
+
continue;
|
|
318
|
+
}
|
|
319
|
+
// Error message may span multiple lines (e.g., path on next line)
|
|
320
|
+
const errorMessage = errorMatch[1].trim().replaceAll(/\n\s+/g, ' ');
|
|
321
|
+
// Extract location from stack trace
|
|
322
|
+
const { file, location } = extractRejectionLocation(section);
|
|
323
|
+
failures.push({
|
|
324
|
+
file,
|
|
325
|
+
location,
|
|
326
|
+
testHierarchy: 'Runtime Error',
|
|
327
|
+
errorMessage,
|
|
328
|
+
sourceLine: ''
|
|
329
|
+
});
|
|
330
|
+
}
|
|
331
|
+
return failures;
|
|
289
332
|
}
|
|
290
333
|
/**
|
|
291
334
|
* Extract coverage threshold failures
|
|
@@ -363,10 +406,8 @@ function extract(output) {
|
|
|
363
406
|
let hasFormat2 = false; // Track if we found Format 2 file headers
|
|
364
407
|
let inDetailSection = false; // Track if we're past summary section (after "Failed Tests" separator)
|
|
365
408
|
// First, check for runtime errors (Unhandled Rejection, ENOENT, etc.)
|
|
366
|
-
const
|
|
367
|
-
|
|
368
|
-
failures.push(runtimeError);
|
|
369
|
-
}
|
|
409
|
+
const runtimeErrors = extractRuntimeErrors(output);
|
|
410
|
+
failures.push(...runtimeErrors);
|
|
370
411
|
// Check for coverage threshold failures
|
|
371
412
|
const coverageError = extractCoverageThresholdError(output);
|
|
372
413
|
if (coverageError) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/extractors/vitest/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/extractors/vitest/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,34 +6,55 @@
|
|
|
6
6
|
* @package @vibe-validate/extractors
|
|
7
7
|
*/
|
|
8
8
|
import { describe, it, expect } from 'vitest';
|
|
9
|
+
import { expectDetection, expectEmptyExtraction, expectPluginMetadata, } from '../../test/helpers/extractor-test-helpers.js';
|
|
9
10
|
import vitestPlugin from './index.js';
|
|
10
|
-
const { extract
|
|
11
|
+
const { extract } = vitestPlugin;
|
|
12
|
+
/**
|
|
13
|
+
* Assert single error extraction with standard checks
|
|
14
|
+
* Helper to reduce test duplication for single-error test cases
|
|
15
|
+
*
|
|
16
|
+
* @param output - Test output to extract from
|
|
17
|
+
* @param expectedFile - Expected error file path
|
|
18
|
+
* @param expectedMessages - Array of message fragments to check
|
|
19
|
+
*/
|
|
20
|
+
function expectSingleError(output, expectedFile, expectedMessages) {
|
|
21
|
+
const result = extract(output);
|
|
22
|
+
expect(result.errors).toHaveLength(1);
|
|
23
|
+
expect(result.errors[0].file).toBe(expectedFile);
|
|
24
|
+
for (const msg of expectedMessages) {
|
|
25
|
+
expect(result.errors[0].message).toContain(msg);
|
|
26
|
+
}
|
|
27
|
+
expect(result.totalErrors).toBe(1);
|
|
28
|
+
expect(result.summary).toBe('1 test failure(s)');
|
|
29
|
+
}
|
|
11
30
|
describe('Vitest Extractor Plugin', () => {
|
|
12
31
|
describe('detect', () => {
|
|
13
32
|
it('should detect Vitest test failures with high confidence', () => {
|
|
14
|
-
|
|
33
|
+
expectDetection(vitestPlugin, `
|
|
15
34
|
FAIL test/unit/config/environment.test.ts > EnvironmentConfig > should parse HTTP_PORT
|
|
16
35
|
AssertionError: expected 3000 to be 9999 // Object.is equality
|
|
17
36
|
❯ test/unit/config/environment.test.ts:57:30
|
|
18
|
-
`.trim()
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
expect(
|
|
37
|
+
`.trim(), {
|
|
38
|
+
confidence: { min: 70 },
|
|
39
|
+
reasonContains: 'Vitest',
|
|
40
|
+
});
|
|
41
|
+
expect(vitestPlugin).toBeDefined();
|
|
23
42
|
});
|
|
24
43
|
it('should detect multiple Vitest patterns with higher confidence', () => {
|
|
25
|
-
|
|
44
|
+
expectDetection(vitestPlugin, `
|
|
26
45
|
❯ test/unit/config/environment.test.ts (1)
|
|
27
46
|
× should parse HTTP_PORT
|
|
28
47
|
AssertionError: expected 3000 to be 9999
|
|
29
|
-
`.trim()
|
|
30
|
-
|
|
31
|
-
|
|
48
|
+
`.trim(), {
|
|
49
|
+
confidence: 90,
|
|
50
|
+
});
|
|
51
|
+
expect(vitestPlugin).toBeDefined();
|
|
32
52
|
});
|
|
33
53
|
it('should not detect non-Vitest output', () => {
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
54
|
+
expectDetection(vitestPlugin, 'Some random text without test failures', {
|
|
55
|
+
confidence: 0,
|
|
56
|
+
});
|
|
57
|
+
expect(vitestPlugin.metadata.name).toBe('vitest'); // Explicit assertion for SonarQube
|
|
37
58
|
});
|
|
38
59
|
});
|
|
39
60
|
describe('extract', () => {
|
|
@@ -187,10 +208,8 @@ AssertionError: expected 3000 to be 9999
|
|
|
187
208
|
expect(result.guidance).toContain('Fix the assertion in the test file');
|
|
188
209
|
});
|
|
189
210
|
it('should handle empty output', () => {
|
|
190
|
-
|
|
191
|
-
expect(
|
|
192
|
-
expect(result.summary).toBe('0 test failure(s)');
|
|
193
|
-
expect(result.totalErrors).toBe(0);
|
|
211
|
+
expectEmptyExtraction(extract, '0 test failure(s)');
|
|
212
|
+
expect(vitestPlugin).toBeDefined();
|
|
194
213
|
});
|
|
195
214
|
it('should handle output with no test failures', () => {
|
|
196
215
|
const output = `
|
|
@@ -201,9 +220,8 @@ AssertionError: expected 3000 to be 9999
|
|
|
201
220
|
Test Files 3 passed (3)
|
|
202
221
|
Tests 3 passed (3)
|
|
203
222
|
`.trim();
|
|
204
|
-
|
|
205
|
-
expect(
|
|
206
|
-
expect(result.totalErrors).toBe(0);
|
|
223
|
+
expectEmptyExtraction(() => extract(output), '0 test failure(s)');
|
|
224
|
+
expect(vitestPlugin).toBeDefined();
|
|
207
225
|
});
|
|
208
226
|
it('should extract location from FAIL sections, not summary × lines', () => {
|
|
209
227
|
// Regression test for issue where summary × lines (without location markers)
|
|
@@ -309,14 +327,11 @@ All files | 88.47 | 84.21 | 86.47 | 88.47 |
|
|
|
309
327
|
|
|
310
328
|
ERROR: Coverage for functions (86.47%) does not meet global threshold (87%)
|
|
311
329
|
`.trim();
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
expect(result.errors[0].message).toContain('87%');
|
|
318
|
-
expect(result.totalErrors).toBe(1);
|
|
319
|
-
expect(result.summary).toBe('1 test failure(s)');
|
|
330
|
+
expectSingleError(output, 'vitest.config.ts', [
|
|
331
|
+
'Coverage for functions',
|
|
332
|
+
'86.47%',
|
|
333
|
+
'87%'
|
|
334
|
+
]);
|
|
320
335
|
});
|
|
321
336
|
it('should extract Vitest worker timeout errors', () => {
|
|
322
337
|
const output = `
|
|
@@ -334,14 +349,11 @@ Error: [vitest-worker]: Timeout calling "onTaskUpdate"
|
|
|
334
349
|
|
|
335
350
|
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
|
|
336
351
|
`.trim();
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
expect(result.errors[0].message).toContain('Kill background processes');
|
|
343
|
-
expect(result.totalErrors).toBe(1);
|
|
344
|
-
expect(result.summary).toBe('1 test failure(s)');
|
|
352
|
+
expectSingleError(output, 'vitest.config.ts', [
|
|
353
|
+
'Timeout calling "onTaskUpdate"',
|
|
354
|
+
'system resource constraints',
|
|
355
|
+
'Kill background processes'
|
|
356
|
+
]);
|
|
345
357
|
});
|
|
346
358
|
it('should extract Vitest worker timeout errors with plural "Unhandled Errors"', () => {
|
|
347
359
|
const output = `
|
|
@@ -364,18 +376,49 @@ Error: [vitest-worker]: Timeout calling "onTaskUpdate"
|
|
|
364
376
|
|
|
365
377
|
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
|
|
366
378
|
`.trim();
|
|
379
|
+
expectSingleError(output, 'vitest.config.ts', [
|
|
380
|
+
'Timeout calling "onTaskUpdate"',
|
|
381
|
+
'system resource constraints',
|
|
382
|
+
'Kill background processes'
|
|
383
|
+
]);
|
|
384
|
+
});
|
|
385
|
+
it('should extract multiple unhandled rejections (issue #84)', () => {
|
|
386
|
+
// Reproduce issue #84: Multiple unhandled promise rejections
|
|
387
|
+
// Test data: 7 different error types that should all be extracted
|
|
388
|
+
const errors = [
|
|
389
|
+
{ type: 'TypeError', msg: 'mockImplementation is not a function', file: 'packages/cli/test/helpers/doctor-helpers.ts', line: 176, col: 24 },
|
|
390
|
+
{ type: 'TypeError', msg: 'mockImplementation is not a function', file: 'packages/cli/test/helpers/doctor-helpers.ts', line: 176, col: 24 },
|
|
391
|
+
{ type: 'TypeError', msg: 'mockResolvedValue is not a function', file: 'packages/cli/test/helpers/doctor-helpers.ts', line: 180, col: 32 },
|
|
392
|
+
{ type: 'Error', msg: 'Test timeout exceeded', file: 'packages/core/test/validation.test.ts', line: 42, col: 15 },
|
|
393
|
+
{ type: 'ReferenceError', msg: 'fetch is not defined', file: 'packages/api/test/client.test.ts', line: 88, col: 10 },
|
|
394
|
+
{ type: 'TypeError', msg: "Cannot read property 'length' of undefined", file: 'packages/utils/test/parser.test.ts', line: 120, col: 25 },
|
|
395
|
+
{ type: 'Error', msg: 'ENOENT: no such file or directory', file: 'packages/fs/test/operations.test.ts', line: 55, col: 18 }
|
|
396
|
+
];
|
|
397
|
+
const rejections = errors.map(e => `⎯⎯⎯⎯ Unhandled Rejection ⎯⎯⎯⎯⎯\n${e.type}: ${e.msg}\n ❯ fn ${e.file}:${e.line}:${e.col}\n ❯ processTicksAndRejections node:internal/process/task_queues:105:5`).join('\n\n');
|
|
398
|
+
const output = `RUN v2.0.5 /Users/jeff/Workspaces/vibe-validate
|
|
399
|
+
Test Files 93 passed (93)
|
|
400
|
+
Tests 1687 passed (1687)
|
|
401
|
+
Errors ${errors.length} errors
|
|
402
|
+
|
|
403
|
+
⎯⎯⎯⎯⎯⎯ Unhandled Errors ⎯⎯⎯⎯⎯⎯
|
|
404
|
+
Vitest caught ${errors.length} unhandled errors during the test run.
|
|
405
|
+
|
|
406
|
+
${rejections}
|
|
407
|
+
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯`;
|
|
367
408
|
const result = extract(output);
|
|
368
|
-
|
|
369
|
-
expect(result.errors
|
|
370
|
-
expect(result.
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
409
|
+
// CRITICAL: Must extract ALL unhandled errors
|
|
410
|
+
expect(result.errors).toHaveLength(errors.length);
|
|
411
|
+
expect(result.totalErrors).toBe(errors.length);
|
|
412
|
+
// Verify each error was extracted correctly
|
|
413
|
+
for (const [i, expected] of errors.entries()) {
|
|
414
|
+
expect(result.errors[i].file).toBe(expected.file);
|
|
415
|
+
expect(result.errors[i].line).toBe(expected.line);
|
|
416
|
+
expect(result.errors[i].column).toBe(expected.col);
|
|
417
|
+
expect(result.errors[i].message).toContain(expected.msg);
|
|
418
|
+
}
|
|
375
419
|
});
|
|
376
420
|
it('should truncate errors array to MAX_ERRORS_IN_ARRAY but preserve totalErrors count', async () => {
|
|
377
|
-
|
|
378
|
-
const { MAX_ERRORS_IN_ARRAY } = await import('../../result-schema.js');
|
|
421
|
+
const { expectMaxErrorsTruncation } = await import('../../test/helpers/max-errors-helper.js');
|
|
379
422
|
// Generate 15 test failures (more than MAX_ERRORS_IN_ARRAY = 10)
|
|
380
423
|
const failures = Array.from({ length: 15 }, (_, i) => `
|
|
381
424
|
FAIL test/unit/file${i + 1}.test.ts > TestSuite > test ${i + 1}
|
|
@@ -384,23 +427,24 @@ AssertionError: expected ${i} to be ${i + 1}
|
|
|
384
427
|
${i + 10}| expect(value).toBe(${i + 1});
|
|
385
428
|
`).join('\n');
|
|
386
429
|
const result = extract(failures);
|
|
387
|
-
//
|
|
388
|
-
expect(result.
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
// Summary should show full count (15)
|
|
396
|
-
expect(result.summary).toBe('15 test failure(s)');
|
|
430
|
+
// Verify truncation behavior (assertions in helper)
|
|
431
|
+
expect(result.errors.length).toBeGreaterThan(0);
|
|
432
|
+
await expectMaxErrorsTruncation(result, {
|
|
433
|
+
totalCount: 15,
|
|
434
|
+
firstError: 'test/unit/file1.test.ts',
|
|
435
|
+
lastTruncatedError: 'test/unit/file10.test.ts',
|
|
436
|
+
summaryPattern: '15 test failure(s)'
|
|
437
|
+
});
|
|
397
438
|
});
|
|
398
439
|
});
|
|
399
440
|
describe('plugin metadata', () => {
|
|
400
441
|
it('should have correct metadata', () => {
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
442
|
+
expectPluginMetadata(vitestPlugin, {
|
|
443
|
+
name: 'vitest',
|
|
444
|
+
priority: 85,
|
|
445
|
+
anyOfHints: ['FAIL'],
|
|
446
|
+
});
|
|
447
|
+
expect(vitestPlugin).toBeDefined();
|
|
404
448
|
});
|
|
405
449
|
it('should include sample test cases', () => {
|
|
406
450
|
expect(vitestPlugin.samples).toBeDefined();
|