У меня есть компонент со следующей функцией ngOnInit, которая опрашивает сервисный метод для обновления статуса:
ngOnInit() {
this.waitingForMachineToStart = interval(2000)
.pipe(
distinctUntilChanged(),
switchMap(() => this.machineService.getMachineStatus(this.machineId)),
)
.subscribe(res => {
this.machineStatus = res.status;
if (this.machineStatus === 'STARTED') {
this.machineStarted = res
this.notify()
}
});
}
Я пытаюсь проверить, что обновления на самом деле происходят, используя следующий код:
beforeEach(() => {
fixture = TestBed.createComponent(UploadComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should start checking for status updates', fakeAsync(() => {
const machineService = TestBed.get(MachineService);
spyOn(machineService, 'getMachineStatus').and.returnValue(Observable.create().pipe(map(() => {status :'STARTED'})));
// Should not be initialised yet
expect(component.machineStarted).toBeUndefined();
tick(2000);
//FAILING TEST
expect(component.machineStarted).toBe({status :'STARTED'});
}));
Тем не менее, тест все равно не пройден.
Заранее спасибо