|
1 | | -import { ChangeDetectorRef, Component, Type, NgZone, SimpleChange, OnChanges, SimpleChanges } from '@angular/core'; |
| 1 | +import { |
| 2 | + ChangeDetectorRef, |
| 3 | + Component, |
| 4 | + Type, |
| 5 | + NgZone, |
| 6 | + SimpleChange, |
| 7 | + OnChanges, |
| 8 | + SimpleChanges, |
| 9 | + ApplicationInitStatus, |
| 10 | +} from '@angular/core'; |
2 | 11 | import { ComponentFixture, TestBed } from '@angular/core/testing'; |
3 | 12 | import { By } from '@angular/platform-browser'; |
4 | 13 | import { BrowserAnimationsModule, NoopAnimationsModule } from '@angular/platform-browser/animations'; |
@@ -74,7 +83,7 @@ export async function render<SutType, WrapperType = SutType>( |
74 | 83 | }); |
75 | 84 | } |
76 | 85 |
|
77 | | - const fixture = createComponentFixture(sut, { template, wrapper }); |
| 86 | + const fixture = await createComponentFixture(sut, { template, wrapper }); |
78 | 87 | setComponentProperties(fixture, { componentProperties }); |
79 | 88 |
|
80 | 89 | if (removeAngularAttributes) { |
@@ -174,15 +183,21 @@ export async function render<SutType, WrapperType = SutType>( |
174 | 183 | }; |
175 | 184 | } |
176 | 185 |
|
177 | | -function createComponentFixture<SutType>( |
| 186 | +async function createComponent<SutType>(component: Type<SutType>): Promise<ComponentFixture<SutType>> { |
| 187 | + /* Make sure angular application is initialized before creating component */ |
| 188 | + await TestBed.inject(ApplicationInitStatus).donePromise; |
| 189 | + return TestBed.createComponent(component); |
| 190 | +} |
| 191 | + |
| 192 | +async function createComponentFixture<SutType>( |
178 | 193 | component: Type<SutType>, |
179 | 194 | { template, wrapper }: Pick<RenderDirectiveOptions<SutType, any>, 'template' | 'wrapper'>, |
180 | | -): ComponentFixture<SutType> { |
| 195 | +): Promise<ComponentFixture<SutType>> { |
181 | 196 | if (template) { |
182 | 197 | TestBed.overrideTemplate(wrapper, template); |
183 | | - return TestBed.createComponent(wrapper); |
| 198 | + return createComponent(wrapper); |
184 | 199 | } |
185 | | - return TestBed.createComponent(component); |
| 200 | + return createComponent(component); |
186 | 201 | } |
187 | 202 |
|
188 | 203 | function setComponentProperties<SutType>( |
|
0 commit comments