From 00ce9aab5b8d3295b8e570e3fdb5f25f9af5738f Mon Sep 17 00:00:00 2001 From: Andrew Kushnir Date: Mon, 22 Apr 2019 15:42:53 -0700 Subject: [PATCH] fix(ivy): explicitly compile ngModuleDef for RootScopeModule in R3TestBed (#30037) This commit unifies the way auxillary RootScopeModule and DynamicTestModule are compiled in R3TestBed by calling `compileNgModuleDefs` explicitly for RootScopeModule. This change also resolves the problem where TestBed's code was used from the @angular/core NPM package: due to the "jit" flag, the @NgModule decorator on the RootScopeModule was transformed to RootScopeModule.decorators = [...], but actual ngModuleDef was never defined. PR Close #30037 --- packages/core/testing/src/r3_test_bed_compiler.ts | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/packages/core/testing/src/r3_test_bed_compiler.ts b/packages/core/testing/src/r3_test_bed_compiler.ts index 3b518e2095..b2ff479ad2 100644 --- a/packages/core/testing/src/r3_test_bed_compiler.ts +++ b/packages/core/testing/src/r3_test_bed_compiler.ts @@ -505,14 +505,10 @@ export class R3TestBedCompiler { } private compileTestModule(): void { - const rootProviderOverrides = this.rootProviderOverrides; - - @NgModule({ - providers: [...rootProviderOverrides], - jit: true, - }) - class RootScopeModule { - } + class RootScopeModule {} + compileNgModuleDefs(RootScopeModule as NgModuleType, { + providers: [...this.rootProviderOverrides], + }); const ngZone = new NgZone({enableLongStackTrace: true}); const providers: Provider[] = [