Testowanie http interceptora w Angular / TS - timeout

0

Od wczoraj próbuję ogarnąć testowanie interceptora (przechwytywacza?) błędów HTTP w aplikacji pisanej w Angular. W akcie desperacji zdecydowałem się spytać tutaj o pomoc, będzie mi bardzo miło jak komuś uda się rozwiązać zagadkę, czemu mi nie działa :)

Sam kod jest do wglądu pod tym linkiem do Stackblitz.

W każdym razie, opierając się na kilku tutorialach i kilkunastu odpowiedzi na SO uważam, że powinno działać, choć z jakiegoś powodu wyrzuca mi w teście błędem:

Error: Timeout - Async callback was not invoked within 5000ms (set by jasmine.DEFAULT_TIMEOUT_INTERVAL)

Co świadczy najpewniej o błędzie przy wykorzystaniu współbieżności. Co ciekawe nie są wywołane console.log z testu. Natomiast jeśli zamiast .toHaveBeenCalled() użyję .toHaveBeenCalledWith('cos_tam'), to poprawnie opisuje HttpErrorResponse w samym błędzie.

0

Problem rozwiązany przy pomocy z SO. Metoda intercept musi rzucić ponownie błędem, inaczej test się go nie doczeka:
https://stackblitz.com/edit/jasmine-in-angular-t1rkzi?file=src%2Fapp%2Fsut%2Ferror.interceptor.ts

1 użytkowników online, w tym zalogowanych: 0, gości: 1