diff --git a/packages/angular/build/src/builders/unit-test/builder.ts b/packages/angular/build/src/builders/unit-test/builder.ts index fd9f88580d70..5bf1556cadcb 100644 --- a/packages/angular/build/src/builders/unit-test/builder.ts +++ b/packages/angular/build/src/builders/unit-test/builder.ts @@ -331,6 +331,15 @@ function findBrowserProvider( } } +function normalizeBrowserName(browserName: string): string { + // Normalize browser names to match Vitest's expectations for headless but also supports karma's names + // e.g., 'ChromeHeadless' -> 'chrome', 'FirefoxHeadless' + // and 'Chrome' -> 'chrome', 'Firefox' -> 'firefox'. + const normalized = browserName.toLowerCase(); + + return normalized.replace(/headless$/, ''); +} + function setupBrowserConfiguration( browsers: string[] | undefined, debug: boolean, @@ -378,8 +387,10 @@ function setupBrowserConfiguration( const browser = { enabled: true, provider, + headless: browsers.some((name) => name.toLowerCase().includes('headless')), + instances: browsers.map((browserName) => ({ - browser: browserName, + browser: normalizeBrowserName(browserName), })), };