Я проверяю, происходит ли сбой службы getTokenRequest.Затем я хочу проверить эти 2 строки this.ngLoggerDispatcher(JSON.stringify(error));
return throwError('get token request');
В тесте getTokenRequest should throw an error
я ставлю шпиона на httpService.getAccessToken
и выкидываю ошибку get token request
Затем я вызываю utilsService.getTokenRequest
и проверяю,utilsService.ngLoggerDispatcher
было вызвано.
Этот тест успешно выполнен, но тест getFile
завершился неудачей с ошибкой object ErrorEvent thrown
, и я не понимаю, почему.
В консоли браузера появляется ошибка Uncaught get token request
utils.service.spec.ts
it('getTokenRequest should throw an error', inject([UtilsService, HttpService],
(utilsService: UtilsService, httpService: HttpService) => {
spyOn(httpService, 'getAccessToken').and.returnValue(throwError('get token request'));
utilsService.getTokenRequest('test.pdf', 'hashcode').pipe(
tap(() => expect(spyOn(utilsService, 'ngLoggerDispatcher')).toHaveBeenCalled())
).subscribe();
}));
it('getFile', inject([UtilsService, HttpService],
(utilsService: UtilsService, httpService: HttpService) => {
store.dispatch(new SetUrlDownload('urlDownloadTest'));
utilsService.getFile().pipe(
tap(() => expect(spyOn(httpService, 'getFile')).toHaveBeenCalledWith('urlDownloadTest'))
).subscribe();
}));
utils.service.ts
getTokenRequest(fileName: string, hashcode: string): Observable<TokenRequestResponse> {
return this.httpService.getAccessToken()
.pipe(
mergeMap((accessToken: string) =>
this.httpService.getTokenRequest(fileName, hashcode, accessToken)
),
catchError((error: Error) => {
this.ngLoggerDispatcher(JSON.stringify(error));
return throwError('get file');
})
);
}
http.service.ts
getAccessToken(): Observable<string> {
return from(this.tokenService.token).pipe(
map(({ accessToken }) => accessToken)
);
}
getTokenRequest(fileName: string, hashcode: string, accessToken: string): Observable<TokenRequestResponse> {
return this.httpClient.post<TokenRequestResponse>('...');
}
}
РЕДАКТИРОВАТЬ: Выполнение команды ng test --source-map=false
Я получаю сообщение об ошибке Failed to load resource: the server responded with a status of 404 (Not Found)
Я не знаю, поможет ли это снимок экрана ошибки