Skip to content

Detect coverage provider from bare vitest --coverage flag#1800

Merged
webpro merged 4 commits into
webpro-nl:mainfrom
WooWan:fix/vitest-coverage
Jun 17, 2026
Merged

Detect coverage provider from bare vitest --coverage flag#1800
webpro merged 4 commits into
webpro-nl:mainfrom
WooWan:fix/vitest-coverage

Conversation

@WooWan

@WooWan WooWan commented Jun 16, 2026

Copy link
Copy Markdown
Contributor

Description

The Vitest plugin didn't recognize @vitest/coverage-* as used when coverage was enabled via the bare --coverage flag (e.g. "test": "vitest run --coverage"). The arg resolver only handled the provider as an object (--coverage.provider=v8):

if (typeof parsed['coverage'] === 'object' && parsed['coverage'].provider) {
  inputs.push(toDependency(`@vitest/coverage-${parsed['coverage'].provider}`));
}

For a plain --coverage, parsed.coverage is true, so it was skipped and @vitest/coverage-v8 was wrongly reported as an unused devDependency.

Fix

Detect @vitest/coverage-v8 when vitest --coverage is provided.

@pkg-pr-new

pkg-pr-new Bot commented Jun 16, 2026

Copy link
Copy Markdown

Open in StackBlitz

npm i https://pkg.pr.new/knip@1800
npm i https://pkg.pr.new/@knip/language-server@1800
npm i https://pkg.pr.new/@knip/mcp@1800

commit: e34aacf

WooWan and others added 4 commits June 17, 2026 10:08
A bare `--coverage` enables coverage with the provider from the config
(`test.coverage.provider`, default v8), which the args resolver can't see.
Referencing `@vitest/coverage-v8` unconditionally there reports a false
unlisted/unused dependency when another provider (e.g. istanbul) is
configured. Reference the default v8 as an optional dependency instead, and
leave an explicit `--coverage.provider=x` as a required reference; the config
resolver already handles configured providers.
@webpro webpro force-pushed the fix/vitest-coverage branch from fc144da to e34aacf Compare June 17, 2026 08:25
@webpro

webpro commented Jun 17, 2026

Copy link
Copy Markdown
Member

Thanks for the PR. Tweaked it a bit, hope you don't mind :)

@webpro webpro merged commit dc11d9f into webpro-nl:main Jun 17, 2026
29 of 30 checks passed
@webpro

webpro commented Jun 17, 2026

Copy link
Copy Markdown
Member

🚀 This pull request is included in v6.17.2. See Release 6.17.2 for release notes.

Using Knip in a commercial project? Please consider becoming a sponsor.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

🐛 Vitest plugin: @vitest/coverage-v8 reported as unused with vitest --coverage

2 participants