Как проверить метод void с видимым вызовом внутри - PullRequest
0 голосов
/ 05 июля 2019

У меня есть следующий метод:

  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]);
}));

Не уверен, где я совершаю ошибку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...