From 6d8c86a71e47d18a46385717bb024b49814a6f96 Mon Sep 17 00:00:00 2001 From: MeAkib Date: Thu, 22 Oct 2026 18:09:49 +0600 Subject: [PATCH] fix(@angular/build): suggest the istanbul provider in the unit-test V8 browser coverage error When code coverage uses the V8 provider with a non-Chromium browser, the unit-test builder told users to disable coverage or remove the browser. The error predates Istanbul coverage support in the Vitest runner, so it never mentioned the option that keeps both. Suggest the `istanbul` provider first. The browser coverage e2e test now asserts the new hint. --- .../build/src/builders/unit-test/runners/vitest/plugins.ts | 3 ++- tests/e2e/tests/vitest/browser-coverage-validation.ts | 5 +++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/packages/angular/build/src/builders/unit-test/runners/vitest/plugins.ts b/packages/angular/build/src/builders/unit-test/runners/vitest/plugins.ts index 72308b6b57d6..3cd8b05834e9 100644 --- a/packages/angular/build/src/builders/unit-test/runners/vitest/plugins.ts +++ b/packages/angular/build/src/builders/unit-test/runners/vitest/plugins.ts @@ -529,7 +529,8 @@ function validateBrowserCoverage( `Code coverage is enabled, but the following configured browsers do not support the V8 coverage provider: ` + `${unsupportedBrowsers.join(', ')}. ` + `V8 coverage is only supported on Chromium-based browsers (e.g., Chrome, Chromium, Edge). ` + - `Please disable coverage or remove the unsupported browsers.`, + `Please use the "istanbul" coverage provider (requires "@vitest/coverage-istanbul"), ` + + `remove the unsupported browsers, or disable coverage.`, ); } } diff --git a/tests/e2e/tests/vitest/browser-coverage-validation.ts b/tests/e2e/tests/vitest/browser-coverage-validation.ts index e98da6495f0b..66342746a91a 100644 --- a/tests/e2e/tests/vitest/browser-coverage-validation.ts +++ b/tests/e2e/tests/vitest/browser-coverage-validation.ts @@ -67,6 +67,11 @@ export default async function (): Promise { /Code coverage is enabled, but the following configured browsers do not support the V8 coverage provider: firefox/, 'Expected validation error for unsupported browser with coverage (config name).', ); + assert.match( + output2, + /Please use the "istanbul" coverage provider/, + 'Expected the error to suggest the istanbul coverage provider.', + ); // === Case 3: Browser configured via vitest.config.mts (instances) === await writeFile(