diff --git a/apps/analog-app/src/app/pages/package.page.ts b/apps/analog-app/src/app/pages/package.page.ts index e622651ab..1eff37db2 100644 --- a/apps/analog-app/src/app/pages/package.page.ts +++ b/apps/analog-app/src/app/pages/package.page.ts @@ -1,8 +1,8 @@ import { Component } from '@angular/core'; -import { MyPackageComponent } from 'my-package'; +import { MyPackage } from 'my-package'; @Component({ - imports: [MyPackageComponent], + imports: [MyPackage], template: ` `, }) export default class PackagePageComponent {} diff --git a/libs/my-package/src/index.ts b/libs/my-package/src/index.ts index 4451f9a7b..b78220f06 100644 --- a/libs/my-package/src/index.ts +++ b/libs/my-package/src/index.ts @@ -1 +1 @@ -export * from './lib/my-package/my-package.component'; +export * from './lib/my-package/my-package'; diff --git a/libs/my-package/src/lib/my-package/allow-overrides-with-aot.spec.ts b/libs/my-package/src/lib/my-package/allow-overrides-with-aot.spec.ts new file mode 100644 index 000000000..61e4fad87 --- /dev/null +++ b/libs/my-package/src/lib/my-package/allow-overrides-with-aot.spec.ts @@ -0,0 +1,16 @@ +import { TestBed } from '@angular/core/testing'; +import { MyPackage } from './my-package'; +import { test } from 'vitest'; + +test('overrides should work even when AOT is enabled', () => { + /* AOT is enabled through `angular({jit: false})` in `../../../vite.config.ts`. */ + + TestBed.overrideComponent(MyPackage, { + set: { + template: 'My Overriden Package', + }, + }); + + const fixture = TestBed.createComponent(MyPackage); + expect(fixture.nativeElement.textContent).toBe('My Overriden Package'); +}); diff --git a/libs/my-package/src/lib/my-package/my-package.component.css b/libs/my-package/src/lib/my-package/my-package.component.css deleted file mode 100644 index e69de29bb..000000000 diff --git a/libs/my-package/src/lib/my-package/my-package.component.html b/libs/my-package/src/lib/my-package/my-package.component.html deleted file mode 100644 index 5b87304e1..000000000 --- a/libs/my-package/src/lib/my-package/my-package.component.html +++ /dev/null @@ -1 +0,0 @@ -

MyPackage works!

diff --git a/libs/my-package/src/lib/my-package/my-package.component.spec.ts b/libs/my-package/src/lib/my-package/my-package.component.spec.ts deleted file mode 100644 index fc5b2f552..000000000 --- a/libs/my-package/src/lib/my-package/my-package.component.spec.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { ComponentFixture, TestBed } from '@angular/core/testing'; -import { MyPackageComponent } from './my-package.component'; - -describe('MyPackageComponent', () => { - let component: MyPackageComponent; - let fixture: ComponentFixture; - - beforeEach(async () => { - await TestBed.configureTestingModule({ - imports: [MyPackageComponent], - }).compileComponents(); - - fixture = TestBed.createComponent(MyPackageComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/libs/my-package/src/lib/my-package/my-package.component.ts b/libs/my-package/src/lib/my-package/my-package.component.ts deleted file mode 100644 index d55019c2c..000000000 --- a/libs/my-package/src/lib/my-package/my-package.component.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { Component } from '@angular/core'; -import { CommonModule } from '@angular/common'; - -@Component({ - selector: 'lib-my-package', - imports: [CommonModule], - templateUrl: './my-package.component.html', - styleUrl: './my-package.component.css', -}) -export class MyPackageComponent {} diff --git a/libs/my-package/src/lib/my-package/my-package.ts b/libs/my-package/src/lib/my-package/my-package.ts new file mode 100644 index 000000000..4f84ab782 --- /dev/null +++ b/libs/my-package/src/lib/my-package/my-package.ts @@ -0,0 +1,8 @@ +import { ChangeDetectionStrategy, Component } from '@angular/core'; +import { CommonModule } from '@angular/common'; + +@Component({ + selector: 'lib-my-package', + template: `My Package`, +}) +export class MyPackage {} diff --git a/libs/my-package/vite.config.ts b/libs/my-package/vite.config.ts index b149cbd5e..1474e1c8f 100644 --- a/libs/my-package/vite.config.ts +++ b/libs/my-package/vite.config.ts @@ -8,7 +8,7 @@ export default defineConfig(({ mode }) => ({ root: __dirname, cacheDir: '../../node_modules/.vite/libs/my-package', plugins: [ - angular(), + angular({ jit: false }), nxViteTsPaths(), nxCopyAssetsPlugin(['*.md', 'package.json']), ], diff --git a/packages/vite-plugin-angular/src/lib/angular-vite-plugin.ts b/packages/vite-plugin-angular/src/lib/angular-vite-plugin.ts index dbbee98dc..75a73b0ca 100644 --- a/packages/vite-plugin-angular/src/lib/angular-vite-plugin.ts +++ b/packages/vite-plugin-angular/src/lib/angular-vite-plugin.ts @@ -787,6 +787,11 @@ export function angular(options?: PluginOptions): Plugin[] { tsCompilerOptions['inlineSources'] = true; } + if (isTest) { + // Allow `TestBed.overrideXXX()` APIs. + tsCompilerOptions['supportTestBed'] = true; + } + const replacements: string[] = pluginOptions.fileReplacements.map((rp) => join( pluginOptions.workspaceRoot,