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.