diff --git a/packages/angular_devkit/build_angular/src/builders/karma/browser_builder.ts b/packages/angular_devkit/build_angular/src/builders/karma/browser_builder.ts index 6bc18e6e2b4e..c6a295ea3b7c 100644 --- a/packages/angular_devkit/build_angular/src/builders/karma/browser_builder.ts +++ b/packages/angular_devkit/build_angular/src/builders/karma/browser_builder.ts @@ -131,7 +131,7 @@ async function initializeBrowser( budgets: undefined, optimization: false, buildOptimizer: false, - aot: false, + aot: options.aot, vendorChunk: true, namedChunks: true, extractLicenses: false, diff --git a/packages/angular_devkit/build_angular/src/builders/karma/tests/options/aot_spec.ts b/packages/angular_devkit/build_angular/src/builders/karma/tests/options/aot_spec.ts index 4019f98f42dc..6d874b22d001 100644 --- a/packages/angular_devkit/build_angular/src/builders/karma/tests/options/aot_spec.ts +++ b/packages/angular_devkit/build_angular/src/builders/karma/tests/options/aot_spec.ts @@ -12,13 +12,13 @@ import { BuilderMode } from '../../schema'; describeKarmaBuilder(execute, KARMA_BUILDER_INFO, (harness, setupTarget) => { describe('Option: "aot"', () => { - it('enables aot', async () => { + it('enables aot with application builder', async () => { await setupTarget(harness); await harness.writeFiles({ 'src/aot.spec.ts': ` import { Component } from '@angular/core'; - + describe('Hello', () => { it('should *not* contain jit instructions', () => { @Component({ @@ -43,5 +43,37 @@ describeKarmaBuilder(execute, KARMA_BUILDER_INFO, (harness, setupTarget) => { const { result } = await harness.executeOnce(); expect(result?.success).toBeTrue(); }); + + it('enables aot with browser builder', async () => { + await setupTarget(harness); + + await harness.writeFiles({ + 'src/aot.spec.ts': ` + import { Component } from '@angular/core'; + + describe('Hello', () => { + it('should *not* contain jit instructions', () => { + @Component({ + template: 'Hello', + }) + class Hello {} + + expect((Hello as any).ɵcmp.template.toString()).not.toContain('jit'); + }); + }); +`, + }); + + harness.useTarget('test', { + ...BASE_OPTIONS, + aot: true, + /** Cf. {@link ../builder-mode_spec.ts} */ + polyfills: ['zone.js', '@angular/localize/init', 'zone.js/testing'], + builderMode: BuilderMode.Browser, + }); + + const { result } = await harness.executeOnce(); + expect(result?.success).toBeTrue(); + }); }); });