|
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