Я использую Karma 3. *, Jasmine, Angular 7 & ngrx.
Я пытаюсь создать тест компонента, который использует новый MockStore.
Вот пример кода:
describe('LiveRoomsComponent', () => {
let store: MockStore<StatsState>;
let component: LiveRoomsComponent;
let fixture: ComponentFixture<LiveRoomsComponent>;
beforeEach(async(() => {
const initialState = {
property1: '',
property2: 200,
property3: [],
property4: []
};
TestBed.configureTestingModule({
declarations: [LiveRoomsComponent],
imports: [ComponentsModule],
providers: [
provideMockStore({ initialState }),
{ provide: LinkResolverService, useClass: MockLinkResolverService }
]
}).compileComponents();
store = TestBed.get(Store);
}));
beforeEach(() => {
fixture = TestBed.createComponent(LiveRoomsComponent);
component = fixture.componentInstance;
});
describe('When WITH other LIVE ROOMS', () => {
beforeEach(() => {
store.setState({
property3: [{ displayName: 'BB' }, { displayName: 'CC' }],
property4: [{ displayName: 'AA'}],
property2: 10,
property1: 'ABC'
}); // set default state
});
it('should compile', () => {
expect(component).toBeTruthy();
});
it('should display LIVE ROOMS', () => {
console.log('HERE 4');
fixture.detectChanges();
// Nothing executes bellow this line
let liveRooms = fixture.debugElement.queryAll(By.css('.live-rooms'));
console.log('HERE 4.1');
expect(liveRooms.length).toBe(2);
});
[...]
В своей консоли я вижу ЗДЕСЬ 4, но никогда не вижу ЗДЕСЬ 4.1.
Любые идеи о том, что происходит.
Кстати ... изменение ОбнаружениеКомпонент по умолчанию.