У меня есть следующий метод:
public listenToVerificationResult(): void {
const kycVerificationResultSubscription = this._kycFacade.getIsVerified.subscribe(
result => {
if (result !== undefined) {
if (result === true) {
this._router.navigate([RouteTypes.kycSuccess]);
} else {
this._router.navigate([RouteTypes.kycError]);
}
if (kycVerificationResultSubscription) {
kycVerificationResultSubscription.unsubscribe();
this._kycFacade.setIsVerified(undefined);
}
}
},
);
}
Я тестирую его с помощью fakeAsync, но по какой-то причине не могу прослушать навигацию маршрутизатора. Я включил RouterTestingModule
и настроил шпион роутера:
let routerSpyNavigate: jasmine.Spy;
затем внутри beforeEach:
routerSpyNavigate = spyOn(
TestBed.get(Router),
'navigate',
).and.callThrough();
Это тест:
it('should redirect to success route if verification result is true', fakeAsync(() => {
kycFacadeMock.setIsVerified(true);
service.listenToVerificationResult();
tick();
let result;
kycFacadeMock.getIsVerified.subscribe(_result => {
result = _result;
});
tick();
expect(result).toEqual(true);
expect(routerSpyNavigate).toHaveBeenCalledWith([RouteTypes.kycSuccess]);
}));
Не уверен, где я совершаю ошибку.