Skip to content

Commit 36dae70

Browse files
authored
feat(vite): add v8 coverage support to vitest generator (#18114)
1 parent 2dc6656 commit 36dae70

File tree

5 files changed

+34
-13
lines changed

5 files changed

+34
-13
lines changed

docs/generated/packages/vite/generators/vitest.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,8 @@
3232
},
3333
"coverageProvider": {
3434
"type": "string",
35-
"enum": ["c8", "istanbul"],
36-
"default": "c8",
35+
"enum": ["v8", "c8", "istanbul"],
36+
"default": "v8",
3737
"description": "Coverage provider to use."
3838
},
3939
"testTarget": {

packages/vite/src/generators/vitest/schema.d.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
export interface VitestGeneratorSchema {
22
project: string;
33
uiFramework: 'react' | 'none';
4-
coverageProvider: 'c8' | 'istanbul';
4+
coverageProvider: 'v8' | 'c8' | 'istanbul';
55
inSourceTests?: boolean;
66
skipViteConfig?: boolean;
77
testTarget?: string;

packages/vite/src/generators/vitest/schema.json

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,9 @@
99
"project": {
1010
"type": "string",
1111
"description": "The name of the project to test.",
12-
"$default": { "$source": "projectName" }
12+
"$default": {
13+
"$source": "projectName"
14+
}
1315
},
1416
"uiFramework": {
1517
"type": "string",
@@ -29,8 +31,8 @@
2931
},
3032
"coverageProvider": {
3133
"type": "string",
32-
"enum": ["c8", "istanbul"],
33-
"default": "c8",
34+
"enum": ["v8", "c8", "istanbul"],
35+
"default": "v8",
3436
"description": "Coverage provider to use."
3537
},
3638
"testTarget": {

packages/vite/src/generators/vitest/vitest-generator.ts

Lines changed: 25 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ import initGenerator from '../init/init';
2222
import {
2323
vitestCoverageC8Version,
2424
vitestCoverageIstanbulVersion,
25+
vitestCoverageV8Version,
2526
} from '../../utils/versions';
2627

2728
import { addTsLibDependencies } from '@nx/js';
@@ -64,16 +65,14 @@ export async function vitestGenerator(
6465
createFiles(tree, schema, root);
6566
updateTsConfig(tree, schema, root);
6667

68+
const coverageProviderDependency = getCoverageProviderDependency(
69+
schema.coverageProvider
70+
);
71+
6772
const installCoverageProviderTask = addDependenciesToPackageJson(
6873
tree,
6974
{},
70-
schema.coverageProvider === 'istanbul'
71-
? {
72-
'@vitest/coverage-istanbul': vitestCoverageIstanbulVersion,
73-
}
74-
: {
75-
'@vitest/coverage-c8': vitestCoverageC8Version,
76-
}
75+
coverageProviderDependency
7776
);
7877
tasks.push(installCoverageProviderTask);
7978

@@ -150,5 +149,24 @@ function createFiles(
150149
});
151150
}
152151

152+
function getCoverageProviderDependency(
153+
coverageProvider: VitestGeneratorSchema['coverageProvider']
154+
) {
155+
switch (coverageProvider) {
156+
case 'c8':
157+
return {
158+
'@vitest/coverage-c8': vitestCoverageC8Version,
159+
};
160+
case 'istanbul':
161+
return {
162+
'@vitest/coverage-istanbul': vitestCoverageIstanbulVersion,
163+
};
164+
default:
165+
return {
166+
'@vitest/coverage-v8': vitestCoverageV8Version,
167+
};
168+
}
169+
}
170+
153171
export default vitestGenerator;
154172
export const vitestSchematic = convertNxGenerator(vitestGenerator);

packages/vite/src/utils/versions.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,5 @@ export const edgeRuntimeVmVersion = '~3.0.2';
1111

1212
// Coverage providers
1313
export const vitestCoverageC8Version = '~0.32.0';
14+
export const vitestCoverageV8Version = '~0.32.0';
1415
export const vitestCoverageIstanbulVersion = '~0.32.0';

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy