diff --git a/packages/angular/build/src/builders/unit-test/runners/vitest/build-options.ts b/packages/angular/build/src/builders/unit-test/runners/vitest/build-options.ts index 72152bd8c624..46e095f4a7b2 100644 --- a/packages/angular/build/src/builders/unit-test/runners/vitest/build-options.ts +++ b/packages/angular/build/src/builders/unit-test/runners/vitest/build-options.ts @@ -48,6 +48,7 @@ function createTestBedInitVirtualFile( import { NgModule${usesZoneJS ? ', provideZoneChangeDetection' : ''} } from '@angular/core'; import { getTestBed, ɵgetCleanupHook as getCleanupHook } from '@angular/core/testing'; import { BrowserTestingModule, platformBrowserTesting } from '@angular/platform-browser/testing'; + import { afterEach, beforeEach } from 'vitest'; ${providersImport} const ANGULAR_TESTBED_SETUP = Symbol.for('@angular/cli/testbed-setup'); diff --git a/packages/angular/build/src/builders/unit-test/tests/behavior/runner-config-vitest_spec.ts b/packages/angular/build/src/builders/unit-test/tests/behavior/runner-config-vitest_spec.ts index ec3a52e7686b..f68dd8daa171 100644 --- a/packages/angular/build/src/builders/unit-test/tests/behavior/runner-config-vitest_spec.ts +++ b/packages/angular/build/src/builders/unit-test/tests/behavior/runner-config-vitest_spec.ts @@ -89,7 +89,7 @@ describeBuilder(execute, UNIT_TEST_BUILDER_INFO, (harness) => { expect(results.numPassedTests).toBe(1); }); - it('should allow overriding builder options via runnerConfig file', async () => { + it('should allow overriding globals to false via runnerConfig file', async () => { harness.useTarget('test', { ...BASE_OPTIONS, runnerConfig: 'vitest.config.ts', @@ -111,7 +111,7 @@ describeBuilder(execute, UNIT_TEST_BUILDER_INFO, (harness) => { harness.writeFile( 'src/app/app.component.spec.ts', ` - import { vi, test, expect } from 'vitest'; + import { expect } from 'vitest'; test('should pass', () => { expect(true).toBe(true); }); @@ -122,6 +122,38 @@ describeBuilder(execute, UNIT_TEST_BUILDER_INFO, (harness) => { expect(result?.success).toBeFalse(); }); + it('should initialize environment even when globals are disabled in runnerConfig file', async () => { + harness.useTarget('test', { + ...BASE_OPTIONS, + runnerConfig: 'vitest.config.ts', + }); + + harness.writeFile( + 'vitest.config.ts', + ` + import { defineConfig } from 'vitest/config'; + export default defineConfig({ + test: { + globals: false, + }, + }); + `, + ); + + harness.writeFile( + 'src/app/app.component.spec.ts', + ` + import { test, expect } from 'vitest'; + test('should pass', () => { + expect(true).toBe(true); + }); + `, + ); + + const { result } = await harness.executeOnce(); + expect(result?.success).toBeTrue(); + }); + it('should fail when a DOM-dependent test is run in a node environment', async () => { harness.useTarget('test', { ...BASE_OPTIONS,