Skip to content

Commit

Permalink
feat(core): allow to provide multiple default testing modules (#15054)
Browse files Browse the repository at this point in the history
This can be used to e.g. add the NoopAnimationsModule by default:

```
TestBed.initTestEnvironment([
  BrowserDynamicTestingModule,
  NoopAnimationsModule
], platformBrowserDynamicTesting());
```
  • Loading branch information
tbosch authored and chuckjaz committed Mar 11, 2017
1 parent 8b5c6b2 commit 6c8638c
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 10 deletions.
6 changes: 3 additions & 3 deletions packages/core/testing/src/test_bed.ts
Expand Up @@ -69,7 +69,7 @@ export class TestBed implements Injector {
*
* @experimental
*/
static initTestEnvironment(ngModule: Type<any>, platform: PlatformRef): TestBed {
static initTestEnvironment(ngModule: Type<any>|Type<any>[], platform: PlatformRef): TestBed {
const testBed = getTestBed();
testBed.initTestEnvironment(ngModule, platform);
return testBed;
Expand Down Expand Up @@ -179,7 +179,7 @@ export class TestBed implements Injector {
*
* @experimental
*/
initTestEnvironment(ngModule: Type<any>, platform: PlatformRef) {
initTestEnvironment(ngModule: Type<any>|Type<any>[], platform: PlatformRef) {
if (this.platform || this.ngModule) {
throw new Error('Cannot set base providers because it has already been called');
}
Expand Down Expand Up @@ -219,7 +219,7 @@ export class TestBed implements Injector {

platform: PlatformRef = null;

ngModule: Type<any> = null;
ngModule: Type<any>|Type<any>[] = null;

configureCompiler(config: {providers?: any[], useJit?: boolean}) {
this._assertNotInstantiated('TestBed.configureCompiler', 'configure the compiler');
Expand Down
12 changes: 8 additions & 4 deletions test-main.js
Expand Up @@ -66,11 +66,15 @@ System.config({
// method and kick off Karma (Jasmine).
System.import('@angular/core/testing')
.then(function(coreTesting) {
return System.import('@angular/platform-browser-dynamic/testing')
.then(function(browserTesting) {
return Promise
.all([
System.import('@angular/platform-browser-dynamic/testing'),
System.import('@angular/platform-browser/animations')
])
.then(function(mods) {
coreTesting.TestBed.initTestEnvironment(
browserTesting.BrowserDynamicTestingModule,
browserTesting.platformBrowserDynamicTesting());
[mods[0].BrowserDynamicTestingModule, mods[1].NoopAnimationsModule],
mods[0].platformBrowserDynamicTesting());
});
})
.then(function() {
Expand Down
6 changes: 3 additions & 3 deletions tools/public_api_guard/core/typings/testing/index.d.ts
Expand Up @@ -58,7 +58,7 @@ export declare function resetFakeAsyncZone(): void;

/** @stable */
export declare class TestBed implements Injector {
ngModule: Type<any>;
ngModule: Type<any> | Type<any>[];
platform: PlatformRef;
compileComponents(): Promise<any>;
configureCompiler(config: {
Expand All @@ -69,7 +69,7 @@ export declare class TestBed implements Injector {
createComponent<T>(component: Type<T>): ComponentFixture<T>;
execute(tokens: any[], fn: Function, context?: any): any;
get(token: any, notFoundValue?: any): any;
/** @experimental */ initTestEnvironment(ngModule: Type<any>, platform: PlatformRef): void;
/** @experimental */ initTestEnvironment(ngModule: Type<any> | Type<any>[], platform: PlatformRef): void;
overrideComponent(component: Type<any>, override: MetadataOverride<Component>): void;
overrideDirective(directive: Type<any>, override: MetadataOverride<Directive>): void;
overrideModule(ngModule: Type<any>, override: MetadataOverride<NgModule>): void;
Expand All @@ -84,7 +84,7 @@ export declare class TestBed implements Injector {
static configureTestingModule(moduleDef: TestModuleMetadata): typeof TestBed;
static createComponent<T>(component: Type<T>): ComponentFixture<T>;
static get(token: any, notFoundValue?: any): any;
/** @experimental */ static initTestEnvironment(ngModule: Type<any>, platform: PlatformRef): TestBed;
/** @experimental */ static initTestEnvironment(ngModule: Type<any> | Type<any>[], platform: PlatformRef): TestBed;
static overrideComponent(component: Type<any>, override: MetadataOverride<Component>): typeof TestBed;
static overrideDirective(directive: Type<any>, override: MetadataOverride<Directive>): typeof TestBed;
static overrideModule(ngModule: Type<any>, override: MetadataOverride<NgModule>): typeof TestBed;
Expand Down

0 comments on commit 6c8638c

Please sign in to comment.