У меня есть следующий код, в котором я ищу специальный заголовок при ошибке:
login(credentials: Credentials): Observable<any> {
return this.http.post(loginUrl, credentials)
.pipe(
catchError((httpErrorResponse: HttpErrorResponse) => {
let error = new Error('', httpErrorResponse.status);
...
if (httpErrorResponse.headers.get('customHeaderName')) {
error.message = 'Appropriate Response';
}
...
return throwError(error);
})
);
}
Я использую HttpClientTestingModule
и пытаюсь проверить это следующим образом:
it('should catch error with custom header', (done) => {
authService.login(credentials)
.subscribe({
next: null,
error: (error: Error) => {
expect(error.message).toEqual('Appropriate Response');
}
});
httpMock.expectOne({
url: apiUrl,
method: 'POST'
}).flush([], {status: 403, statusText: 'Forbidden', headers: {'customHeaderName': 'customHeaderValue'}});
done();
});
Не уверен, где проблема, но status
и statusText
проходят как положено, но заголовки не включены, поэтому блок if не активирован.
Есть предложения?