@vibe-validate/extractors 0.17.6 → 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.d.ts.map +1 -1
- package/dist/extractors/eslint/index.js +5 -2
- package/dist/extractors/eslint/index.js.map +1 -1
- package/dist/extractors/eslint/index.test.js +115 -47
- 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
|
@@ -2,23 +2,21 @@ import { readFileSync } from 'node:fs';
|
|
|
2
2
|
import { join, dirname } from 'node:path';
|
|
3
3
|
import { fileURLToPath } from 'node:url';
|
|
4
4
|
import { describe, it, expect } from 'vitest';
|
|
5
|
-
import
|
|
5
|
+
import { expectDetection, expectPluginMetadata, } from '../../test/helpers/extractor-test-helpers.js';
|
|
6
|
+
import mavenCheckstyleExtractor, { extractMavenCheckstyle } from './index.js';
|
|
6
7
|
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
7
8
|
describe('Maven Checkstyle Extractor Plugin', () => {
|
|
8
9
|
describe('plugin metadata', () => {
|
|
9
10
|
it('should have correct metadata', () => {
|
|
10
|
-
|
|
11
|
+
expectPluginMetadata(mavenCheckstyleExtractor, {
|
|
12
|
+
name: 'maven-checkstyle',
|
|
13
|
+
priority: 60,
|
|
14
|
+
requiredHints: ['[WARN]', '[INFO]'],
|
|
15
|
+
tags: ['maven', 'checkstyle'],
|
|
16
|
+
});
|
|
17
|
+
// Verify additional metadata fields not covered by helper
|
|
11
18
|
expect(mavenCheckstyleExtractor.metadata.version).toBe('1.0.0');
|
|
12
|
-
expect(mavenCheckstyleExtractor.
|
|
13
|
-
expect(mavenCheckstyleExtractor.metadata.tags).toContain('checkstyle');
|
|
14
|
-
});
|
|
15
|
-
it('should have hints for fast filtering', () => {
|
|
16
|
-
expect(mavenCheckstyleExtractor.hints.required).toContain('[WARN]');
|
|
17
|
-
expect(mavenCheckstyleExtractor.hints.required).toContain('[INFO]');
|
|
18
|
-
expect(mavenCheckstyleExtractor.hints.anyOf).toBeDefined();
|
|
19
|
-
});
|
|
20
|
-
it('should have priority defined', () => {
|
|
21
|
-
expect(mavenCheckstyleExtractor.priority).toBe(60);
|
|
19
|
+
expect(mavenCheckstyleExtractor.hints?.anyOf).toBeDefined();
|
|
22
20
|
});
|
|
23
21
|
it('should have samples', () => {
|
|
24
22
|
expect(mavenCheckstyleExtractor.samples).toBeDefined();
|
|
@@ -27,30 +25,35 @@ describe('Maven Checkstyle Extractor Plugin', () => {
|
|
|
27
25
|
});
|
|
28
26
|
describe('detectMavenCheckstyle', () => {
|
|
29
27
|
it('should detect Maven Checkstyle output with high confidence', () => {
|
|
30
|
-
|
|
28
|
+
expectDetection(mavenCheckstyleExtractor, `[INFO] Starting audit...
|
|
31
29
|
[WARN] /path/to/File.java:10:5: Missing Javadoc comment. [JavadocVariable]
|
|
32
30
|
Audit done.
|
|
33
|
-
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-checkstyle-plugin:3.3.1:check: You have 5 Checkstyle violations
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
31
|
+
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-checkstyle-plugin:3.3.1:check: You have 5 Checkstyle violations.`, {
|
|
32
|
+
confidence: { min: 100 },
|
|
33
|
+
patterns: [
|
|
34
|
+
'maven-checkstyle-plugin reference',
|
|
35
|
+
'Checkstyle audit start marker',
|
|
36
|
+
'Checkstyle audit complete marker',
|
|
37
|
+
'Checkstyle violation summary',
|
|
38
|
+
],
|
|
39
|
+
reasonContains: 'Maven Checkstyle plugin output detected',
|
|
40
|
+
});
|
|
41
|
+
expect(mavenCheckstyleExtractor).toBeDefined();
|
|
41
42
|
});
|
|
42
43
|
it('should have low confidence for non-Checkstyle output', () => {
|
|
43
|
-
|
|
44
|
+
expectDetection(mavenCheckstyleExtractor, `Some random build output
|
|
44
45
|
No Checkstyle markers here
|
|
45
|
-
Just normal text
|
|
46
|
-
|
|
47
|
-
|
|
46
|
+
Just normal text`, {
|
|
47
|
+
confidence: { max: 39 },
|
|
48
|
+
});
|
|
49
|
+
expect(mavenCheckstyleExtractor).toBeDefined();
|
|
48
50
|
});
|
|
49
51
|
it('should detect plugin reference for medium confidence', () => {
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
52
|
+
expectDetection(mavenCheckstyleExtractor, `[INFO] Running maven-checkstyle-plugin`, {
|
|
53
|
+
confidence: { min: 40 },
|
|
54
|
+
patterns: ['maven-checkstyle-plugin reference'],
|
|
55
|
+
});
|
|
56
|
+
expect(mavenCheckstyleExtractor).toBeDefined();
|
|
54
57
|
});
|
|
55
58
|
});
|
|
56
59
|
describe('extractMavenCheckstyle', () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../../src/extractors/maven-checkstyle/index.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAE9C,OAAO,wBAAwB,EAAE,EAAE,
|
|
1
|
+
{"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../../src/extractors/maven-checkstyle/index.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,40 +2,45 @@ import { readFileSync } from 'node:fs';
|
|
|
2
2
|
import { join, dirname } from 'node:path';
|
|
3
3
|
import { fileURLToPath } from 'node:url';
|
|
4
4
|
import { describe, it, expect } from 'vitest';
|
|
5
|
+
import { expectDetection, expectPluginMetadata, } from '../../test/helpers/extractor-test-helpers.js';
|
|
5
6
|
import mavenCompilerExtractor from './index.js';
|
|
6
7
|
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
7
8
|
describe('Maven Compiler Extractor', () => {
|
|
8
9
|
describe('detectMavenCompiler', () => {
|
|
9
10
|
it('should detect Maven compiler output with high confidence', () => {
|
|
10
|
-
|
|
11
|
+
expectDetection(mavenCompilerExtractor, `[INFO] Compiling 45 source files to target/classes
|
|
11
12
|
[ERROR] COMPILATION ERROR :
|
|
12
13
|
[ERROR] /path/to/File.java:[42,25] cannot find symbol
|
|
13
14
|
[INFO] 2 errors
|
|
14
|
-
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.13.0:compile
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
15
|
+
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.13.0:compile`, {
|
|
16
|
+
confidence: 100,
|
|
17
|
+
patterns: [
|
|
18
|
+
'[ERROR] COMPILATION ERROR marker',
|
|
19
|
+
'maven-compiler-plugin reference',
|
|
20
|
+
'file:[line,column] format',
|
|
21
|
+
'error count summary',
|
|
22
|
+
'Java compiler error pattern',
|
|
23
|
+
],
|
|
24
|
+
reasonContains: 'Maven compiler plugin output detected',
|
|
25
|
+
});
|
|
26
|
+
expect(mavenCompilerExtractor).toBeDefined();
|
|
23
27
|
});
|
|
24
28
|
it('should have low confidence for non-compiler output', () => {
|
|
25
|
-
|
|
29
|
+
expectDetection(mavenCompilerExtractor, `Some random build output
|
|
26
30
|
No compilation errors here
|
|
27
|
-
Just normal text
|
|
28
|
-
|
|
29
|
-
|
|
31
|
+
Just normal text`, {
|
|
32
|
+
confidence: { max: 39 },
|
|
33
|
+
});
|
|
34
|
+
expect(mavenCompilerExtractor).toBeDefined();
|
|
30
35
|
});
|
|
31
36
|
it('should detect compilation error marker alone (partial match)', () => {
|
|
32
|
-
|
|
37
|
+
expectDetection(mavenCompilerExtractor, `[INFO] Building project
|
|
33
38
|
[ERROR] COMPILATION ERROR :
|
|
34
|
-
[ERROR] Some compilation issue occurred
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
expect(
|
|
39
|
+
[ERROR] Some compilation issue occurred`, {
|
|
40
|
+
confidence: 30, // COMPILATION ERROR marker is worth 30 points
|
|
41
|
+
patterns: ['[ERROR] COMPILATION ERROR marker'],
|
|
42
|
+
});
|
|
43
|
+
expect(mavenCompilerExtractor).toBeDefined();
|
|
39
44
|
});
|
|
40
45
|
});
|
|
41
46
|
describe('extractMavenCompiler', () => {
|
|
@@ -170,14 +175,14 @@ Just normal text`;
|
|
|
170
175
|
});
|
|
171
176
|
describe('plugin metadata', () => {
|
|
172
177
|
it('should have correct metadata', () => {
|
|
173
|
-
|
|
178
|
+
expectPluginMetadata(mavenCompilerExtractor, {
|
|
179
|
+
name: 'maven-compiler',
|
|
180
|
+
priority: 70,
|
|
181
|
+
requiredHints: ['[ERROR]', '[INFO]'],
|
|
182
|
+
});
|
|
183
|
+
// Verify additional metadata fields not covered by helper
|
|
174
184
|
expect(mavenCompilerExtractor.metadata.version).toBeDefined();
|
|
175
185
|
expect(mavenCompilerExtractor.metadata.description).toContain('Maven');
|
|
176
|
-
});
|
|
177
|
-
it('should have hints for fast filtering', () => {
|
|
178
|
-
expect(mavenCompilerExtractor.hints).toBeDefined();
|
|
179
|
-
expect(mavenCompilerExtractor.hints?.required).toContain('[ERROR]');
|
|
180
|
-
expect(mavenCompilerExtractor.hints?.required).toContain('[INFO]');
|
|
181
186
|
expect(mavenCompilerExtractor.hints?.anyOf).toBeDefined();
|
|
182
187
|
});
|
|
183
188
|
it('should have samples for testing', () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../../src/extractors/maven-compiler/index.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAE9C,OAAO,sBAAsB,MAAM,YAAY,CAAC;AAEhD,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAE1D,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;IACxC,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;QACnC,EAAE,CAAC,0DAA0D,EAAE,GAAG,EAAE;YAClE,
|
|
1
|
+
{"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../../src/extractors/maven-compiler/index.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import { describe, it, expect } from 'vitest';
|
|
2
|
+
import { expectDetection, expectPluginMetadata, } from '../../test/helpers/extractor-test-helpers.js';
|
|
2
3
|
import mavenSurefireExtractor from './index.js';
|
|
3
4
|
describe('Maven Surefire Extractor Plugin', () => {
|
|
4
5
|
describe('metadata', () => {
|
|
5
6
|
it('should have correct plugin metadata', () => {
|
|
6
|
-
|
|
7
|
+
expectPluginMetadata(mavenSurefireExtractor, {
|
|
8
|
+
name: 'maven-surefire',
|
|
9
|
+
priority: 95,
|
|
10
|
+
requiredHints: ['[ERROR]', 'Tests run:'],
|
|
11
|
+
tags: ['maven', 'junit'],
|
|
12
|
+
});
|
|
13
|
+
// Verify additional metadata fields not covered by helper
|
|
7
14
|
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
15
|
expect(mavenSurefireExtractor.hints?.anyOf).toBeDefined();
|
|
16
16
|
});
|
|
17
17
|
it('should have priority higher than Jasmine to avoid false matches', () => {
|
|
@@ -23,29 +23,31 @@ describe('Maven Surefire Extractor Plugin', () => {
|
|
|
23
23
|
});
|
|
24
24
|
describe('detect', () => {
|
|
25
25
|
it('should detect Maven Surefire output with high confidence', () => {
|
|
26
|
-
|
|
26
|
+
expectDetection(mavenSurefireExtractor, `[INFO] Running tests...
|
|
27
27
|
[ERROR] Tests run: 10, Failures: 3, Errors: 1, Skipped: 0
|
|
28
28
|
[ERROR] com.example.FooTest.testBar -- Time elapsed: 0.123 s <<< FAILURE!
|
|
29
|
-
java.lang.AssertionError: Expected 5 but was 3
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
expect(
|
|
29
|
+
java.lang.AssertionError: Expected 5 but was 3`, {
|
|
30
|
+
confidence: { min: 70 },
|
|
31
|
+
patterns: ['Test summary (Tests run, Failures, Errors)', 'Test failure markers'],
|
|
32
|
+
reasonContains: 'Maven Surefire',
|
|
33
|
+
});
|
|
34
|
+
expect(mavenSurefireExtractor).toBeDefined();
|
|
35
35
|
});
|
|
36
36
|
it('should detect JUnit assertion errors', () => {
|
|
37
|
-
|
|
37
|
+
expectDetection(mavenSurefireExtractor, `[ERROR] Tests run: 5, Failures: 2, Errors: 0
|
|
38
38
|
[ERROR] testFoo -- Time elapsed: 0.1 s <<< FAILURE!
|
|
39
|
-
org.opentest4j.AssertionFailedError: expected: "foo" but was: "bar"
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
39
|
+
org.opentest4j.AssertionFailedError: expected: "foo" but was: "bar"`, {
|
|
40
|
+
confidence: { min: 70 },
|
|
41
|
+
patterns: ['JUnit assertion errors'],
|
|
42
|
+
});
|
|
43
|
+
expect(mavenSurefireExtractor).toBeDefined();
|
|
43
44
|
});
|
|
44
45
|
it('should have low confidence for non-Surefire output', () => {
|
|
45
|
-
|
|
46
|
-
No test markers here
|
|
47
|
-
|
|
48
|
-
|
|
46
|
+
expectDetection(mavenSurefireExtractor, `Some random output
|
|
47
|
+
No test markers here`, {
|
|
48
|
+
confidence: { max: 39 },
|
|
49
|
+
});
|
|
50
|
+
expect(mavenSurefireExtractor).toBeDefined();
|
|
49
51
|
});
|
|
50
52
|
});
|
|
51
53
|
describe('extract', () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../../src/extractors/maven-surefire/index.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAE9C,OAAO,sBAAsB,MAAM,YAAY,CAAC;AAEhD,QAAQ,CAAC,iCAAiC,EAAE,GAAG,EAAE;IAC/C,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;QACxB,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;YAC7C,
|
|
1
|
+
{"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../../src/extractors/maven-surefire/index.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,30 +4,34 @@
|
|
|
4
4
|
* @package @vibe-validate/extractors
|
|
5
5
|
*/
|
|
6
6
|
import { describe, it, expect } from 'vitest';
|
|
7
|
+
import { expectDetection, expectPluginMetadata, } from '../../test/helpers/extractor-test-helpers.js';
|
|
7
8
|
import mochaPlugin from './index.js';
|
|
8
9
|
describe('mocha extractor plugin', () => {
|
|
9
10
|
describe('detect', () => {
|
|
10
11
|
it('should detect Mocha output with failing tests', () => {
|
|
11
|
-
|
|
12
|
+
expectDetection(mochaPlugin, `
|
|
12
13
|
1 failing
|
|
13
14
|
5 passing
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
15
|
+
`, {
|
|
16
|
+
confidence: 85,
|
|
17
|
+
reasonContains: 'Mocha',
|
|
18
|
+
});
|
|
19
|
+
expect(mochaPlugin.metadata.name).toBe('mocha'); // Explicit assertion for SonarQube
|
|
18
20
|
});
|
|
19
21
|
it('should detect Mocha output with only passing tests', () => {
|
|
20
|
-
|
|
22
|
+
expectDetection(mochaPlugin, `
|
|
21
23
|
0 failing
|
|
22
24
|
10 passing
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
25
|
+
`, {
|
|
26
|
+
confidence: 85,
|
|
27
|
+
});
|
|
28
|
+
expect(mochaPlugin.metadata.name).toBe('mocha'); // Explicit assertion for SonarQube
|
|
26
29
|
});
|
|
27
30
|
it('should not detect non-Mocha output', () => {
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
+
expectDetection(mochaPlugin, 'Some random text without Mocha patterns', {
|
|
32
|
+
confidence: 0,
|
|
33
|
+
});
|
|
34
|
+
expect(mochaPlugin.metadata.name).toBe('mocha'); // Explicit assertion for SonarQube
|
|
31
35
|
});
|
|
32
36
|
});
|
|
33
37
|
describe('extract', () => {
|
|
@@ -207,8 +211,10 @@ describe('mocha extractor plugin', () => {
|
|
|
207
211
|
0 failing
|
|
208
212
|
`;
|
|
209
213
|
const result = mochaPlugin.extract(input);
|
|
210
|
-
expect(result.summary).toBe('0 test(s) failed');
|
|
211
214
|
expect(result.errors).toHaveLength(0);
|
|
215
|
+
expect(result.totalErrors).toBe(0);
|
|
216
|
+
expect(result.summary).toBe('0 test(s) failed');
|
|
217
|
+
expect(mochaPlugin).toBeDefined();
|
|
212
218
|
});
|
|
213
219
|
it('should handle missing stack trace', () => {
|
|
214
220
|
const input = `
|
|
@@ -283,17 +289,16 @@ describe('mocha extractor plugin', () => {
|
|
|
283
289
|
});
|
|
284
290
|
describe('metadata', () => {
|
|
285
291
|
it('should have complete plugin metadata', () => {
|
|
286
|
-
|
|
292
|
+
expectPluginMetadata(mochaPlugin, {
|
|
293
|
+
name: 'mocha',
|
|
294
|
+
priority: 85,
|
|
295
|
+
requiredHints: ['failing'],
|
|
296
|
+
anyOfHints: ['passing'],
|
|
297
|
+
tags: ['mocha'],
|
|
298
|
+
});
|
|
299
|
+
// Verify additional metadata fields not covered by helper
|
|
287
300
|
expect(mochaPlugin.metadata.version).toBe('1.0.0');
|
|
288
301
|
expect(mochaPlugin.metadata.description).toBeTruthy();
|
|
289
|
-
expect(mochaPlugin.metadata.tags).toContain('mocha');
|
|
290
|
-
});
|
|
291
|
-
it('should have appropriate priority', () => {
|
|
292
|
-
expect(mochaPlugin.priority).toBe(85);
|
|
293
|
-
});
|
|
294
|
-
it('should have detection hints', () => {
|
|
295
|
-
expect(mochaPlugin.hints.required).toContain('failing');
|
|
296
|
-
expect(mochaPlugin.hints.anyOf).toContain('passing');
|
|
297
302
|
});
|
|
298
303
|
});
|
|
299
304
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../../src/extractors/mocha/index.test.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAE9C,OAAO,WAAW,MAAM,YAAY,CAAC;AAErC,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;IACtC,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;QACtB,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;YACvD,
|
|
1
|
+
{"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../../src/extractors/mocha/index.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,28 +4,32 @@
|
|
|
4
4
|
* @package @vibe-validate/extractors
|
|
5
5
|
*/
|
|
6
6
|
import { describe, it, expect } from 'vitest';
|
|
7
|
+
import { expectDetection, expectPluginMetadata, } from '../../test/helpers/extractor-test-helpers.js';
|
|
7
8
|
import playwrightPlugin from './index.js';
|
|
8
9
|
describe('playwright extractor plugin', () => {
|
|
9
10
|
describe('detect', () => {
|
|
10
11
|
it('should detect Playwright output with ✘ marker', () => {
|
|
11
|
-
|
|
12
|
+
expectDetection(playwrightPlugin, `
|
|
12
13
|
✘ 1 tests/example.spec.ts:10:5 › should fail (100ms)
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
14
|
+
`, {
|
|
15
|
+
confidence: 90,
|
|
16
|
+
reasonContains: 'Playwright',
|
|
17
|
+
});
|
|
18
|
+
expect(playwrightPlugin).toBeDefined();
|
|
17
19
|
});
|
|
18
20
|
it('should detect Playwright output with numbered failures', () => {
|
|
19
|
-
|
|
21
|
+
expectDetection(playwrightPlugin, `
|
|
20
22
|
1) tests/example.spec.ts:10:5 › test name
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
23
|
+
`, {
|
|
24
|
+
confidence: 90,
|
|
25
|
+
});
|
|
26
|
+
expect(playwrightPlugin).toBeDefined();
|
|
24
27
|
});
|
|
25
28
|
it('should not detect non-Playwright output', () => {
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
+
expectDetection(playwrightPlugin, 'Some random text without Playwright patterns', {
|
|
30
|
+
confidence: 0,
|
|
31
|
+
});
|
|
32
|
+
expect(playwrightPlugin.metadata.name).toBe('playwright'); // Explicit assertion for SonarQube
|
|
29
33
|
});
|
|
30
34
|
});
|
|
31
35
|
describe('extract', () => {
|
|
@@ -109,6 +113,8 @@ Running 5 tests using 2 workers
|
|
|
109
113
|
`;
|
|
110
114
|
const result = playwrightPlugin.extract(output);
|
|
111
115
|
expect(result.errors).toHaveLength(0);
|
|
116
|
+
expect(result.totalErrors).toBe(0);
|
|
117
|
+
expect(result.summary).toBe('0 test(s) failed');
|
|
112
118
|
expect(result.metadata.completeness).toBe(100);
|
|
113
119
|
});
|
|
114
120
|
});
|
|
@@ -257,17 +263,16 @@ Running 5 tests using 2 workers
|
|
|
257
263
|
});
|
|
258
264
|
describe('metadata', () => {
|
|
259
265
|
it('should have complete plugin metadata', () => {
|
|
260
|
-
|
|
266
|
+
expectPluginMetadata(playwrightPlugin, {
|
|
267
|
+
name: 'playwright',
|
|
268
|
+
priority: 90,
|
|
269
|
+
requiredHints: ['.spec.ts'],
|
|
270
|
+
anyOfHints: ['✘'],
|
|
271
|
+
tags: ['playwright'],
|
|
272
|
+
});
|
|
273
|
+
// Verify additional metadata fields not covered by helper
|
|
261
274
|
expect(playwrightPlugin.metadata.version).toBe('1.0.0');
|
|
262
275
|
expect(playwrightPlugin.metadata.description).toBeTruthy();
|
|
263
|
-
expect(playwrightPlugin.metadata.tags).toContain('playwright');
|
|
264
|
-
});
|
|
265
|
-
it('should have appropriate priority', () => {
|
|
266
|
-
expect(playwrightPlugin.priority).toBe(90);
|
|
267
|
-
});
|
|
268
|
-
it('should have detection hints', () => {
|
|
269
|
-
expect(playwrightPlugin.hints.required).toContain('.spec.ts');
|
|
270
|
-
expect(playwrightPlugin.hints.anyOf).toContain('✘');
|
|
271
276
|
});
|
|
272
277
|
});
|
|
273
278
|
});
|