diff --git a/packages/core/testing/src/test_bed.ts b/packages/core/testing/src/test_bed.ts index 962dd11126..5a75ca466f 100644 --- a/packages/core/testing/src/test_bed.ts +++ b/packages/core/testing/src/test_bed.ts @@ -159,6 +159,25 @@ export class TestBed implements Injector { return TestBed; } + /** + * Overwrites all providers for the given token with the given provider definition. + * + * @deprecated as it makes all NgModules lazy. Introduced only for migrating off of it. + */ + static deprecatedOverrideProvider(token: any, provider: { + useFactory: Function, + deps: any[], + }): void; + static deprecatedOverrideProvider(token: any, provider: {useValue: any;}): void; + static deprecatedOverrideProvider(token: any, provider: { + useFactory?: Function, + useValue?: any, + deps?: any[], + }): typeof TestBed { + getTestBed().deprecatedOverrideProvider(token, provider as any); + return TestBed; + } + static get(token: any, notFoundValue: any = Injector.THROW_IF_NOT_FOUND) { return getTestBed().get(token, notFoundValue); } @@ -394,11 +413,33 @@ export class TestBed implements Injector { deps: any[], }): void; overrideProvider(token: any, provider: {useValue: any;}): void; - overrideProvider(token: any, provider: { - useFactory?: Function, - useValue?: any, - deps?: any[], - }): void { + overrideProvider(token: any, provider: {useFactory?: Function, useValue?: any, deps?: any[]}): + void { + this.overrideProviderImpl(token, provider); + } + + /** + * Overwrites all providers for the given token with the given provider definition. + * + * @deprecated as it makes all NgModules lazy. Introduced only for migrating off of it. + */ + deprecatedOverrideProvider(token: any, provider: { + useFactory: Function, + deps: any[], + }): void; + deprecatedOverrideProvider(token: any, provider: {useValue: any;}): void; + deprecatedOverrideProvider( + token: any, provider: {useFactory?: Function, useValue?: any, deps?: any[]}): void { + this.overrideProviderImpl(token, provider, /* deprecated */ true); + } + + private overrideProviderImpl( + token: any, provider: { + useFactory?: Function, + useValue?: any, + deps?: any[], + }, + deprecated = false): void { let flags: NodeFlags = 0; let value: any; if (provider.useFactory) { diff --git a/tools/public_api_guard/core/testing.d.ts b/tools/public_api_guard/core/testing.d.ts index 5f9acd7c7c..3532e0f888 100644 --- a/tools/public_api_guard/core/testing.d.ts +++ b/tools/public_api_guard/core/testing.d.ts @@ -71,6 +71,13 @@ export declare class TestBed implements Injector { }): void; configureTestingModule(moduleDef: TestModuleMetadata): void; createComponent(component: Type): ComponentFixture; + /** @deprecated */ deprecatedOverrideProvider(token: any, provider: { + useFactory: Function; + deps: any[]; + }): void; + deprecatedOverrideProvider(token: any, provider: { + useValue: any; + }): void; execute(tokens: any[], fn: Function, context?: any): any; get(token: any, notFoundValue?: any): any; /** @experimental */ initTestEnvironment(ngModule: Type | Type[], platform: PlatformRef, aotSummaries?: () => any[]): void; @@ -94,6 +101,13 @@ export declare class TestBed implements Injector { }): typeof TestBed; static configureTestingModule(moduleDef: TestModuleMetadata): typeof TestBed; static createComponent(component: Type): ComponentFixture; + /** @deprecated */ static deprecatedOverrideProvider(token: any, provider: { + useFactory: Function; + deps: any[]; + }): void; + static deprecatedOverrideProvider(token: any, provider: { + useValue: any; + }): void; static get(token: any, notFoundValue?: any): any; /** @experimental */ static initTestEnvironment(ngModule: Type | Type[], platform: PlatformRef, aotSummaries?: () => any[]): TestBed; static overrideComponent(component: Type, override: MetadataOverride): typeof TestBed;