@@ -84,6 +84,20 @@ export function resolveDefaultUnitCoverageIncludePatterns(
|
84 | 84 | return [...sourceFiles].toSorted((left, right) => left.localeCompare(right)); |
85 | 85 | } |
86 | 86 | |
| 87 | +function isEnabledFlagValue(value: string): boolean { |
| 88 | +return !["0", "false", "no", "off"].includes(value.trim().toLowerCase()); |
| 89 | +} |
| 90 | + |
| 91 | +function isCoverageEnabledFromArgv(argv: string[] = process.argv): boolean { |
| 92 | +return argv.some((arg) => { |
| 93 | +if (arg === "--coverage" || arg === "--coverage.enabled") { |
| 94 | +return true; |
| 95 | +} |
| 96 | +const match = arg.match(/^--coverage(?:\.enabled)?=(.*)$/u); |
| 97 | +return match ? isEnabledFlagValue(match[1] ?? "") : false; |
| 98 | +}); |
| 99 | +} |
| 100 | + |
87 | 101 | export function createUnitVitestConfigWithOptions( |
88 | 102 | env: Record<string, string | undefined> = process.env, |
89 | 103 | options: { |
@@ -95,11 +109,13 @@ export function createUnitVitestConfigWithOptions(
|
95 | 109 | } = {}, |
96 | 110 | ) { |
97 | 111 | const isolate = resolveVitestIsolation(env); |
| 112 | +const argv = options.argv ?? process.argv; |
98 | 113 | const unitFastTestFiles = getUnitFastTestFiles(); |
99 | 114 | const envIncludePatterns = loadIncludePatternsFromEnv(env); |
100 | 115 | const defaultIncludePatterns = options.includePatterns ?? unitTestIncludePatterns; |
101 | | -const cliIncludePatterns = narrowIncludePatternsForCli(defaultIncludePatterns, options.argv); |
| 116 | +const cliIncludePatterns = narrowIncludePatternsForCli(defaultIncludePatterns, argv); |
102 | 117 | const coverageIncludePatterns = |
| 118 | +isCoverageEnabledFromArgv(argv) && |
103 | 119 | options.includePatterns === undefined && |
104 | 120 | envIncludePatterns === null && |
105 | 121 | cliIncludePatterns === null |
|