Как ожидать httpReq.request.headers.get («авторизация»). ToBeTruthy ()? - PullRequest
0 голосов
/ 03 января 2019

У меня проблема с выполнением модульного тестирования перехватчика, потому что он говорит мне, что httpReq.request.headers.get ('авторизация'). ToBeTruthy () должно быть tobefalsy (). Даже я даю токенэто и затем присоединение этого токена с заголовком авторизации, как показано в следующем коде, но это дает мне ошибку.Это сервисный код перехватчика:

`

export class TokenInterceptorService implements HttpInterceptor {
    constructor(private auth: CoreService) {
    }
    intercept(req: HttpRequest<any>, next: HttpHandler) {
        if (this.auth.getToken()) {
            req = req.clone({
                setHeaders: {
                    authorization: `Token ${this.auth.getToken()}`
                }
            });
        }
        return next.handle(req);
    }
}

`

Я пробовал разные подходы, чтобы исправить это, и даже если я отладил этот код, токен приходит, но когдамы ожидаем, что это будет правдой, это говорит мне, что токен имеет значение null

это код спецификации файла

`

 it('should add a Authorization token to the authorization header', () => {
        coreService.setToken('this is my dummy token');
        const token = coreService.getToken();
        const spy = coreSpy.getToken();
        const someData = { data: 'someData ' };
        http.get('localhost:3000/anonymous/user').subscribe((data) => {
            expect(data).toEqual(someData);
        });
        const httpReq = httpTestingController.expectOne('localhost:3000/anonymous/user');
        expect(httpReq.request.method).toBe('GET');
        expect(httpReq.request.headers.get('authorization')).toBeTruthy();
        expect(httpReq.request.headers.get('authorization')).toBe(`Token ${token}`);
        httpReq.flush(someData);
        httpTestingController.verify();
    });

`

ожидаемый результатэто то, что это должно сказать мне, что это правда, что мы получаем разрешение.

1 Ответ

0 голосов
/ 03 января 2019

Я думаю, что мы столкнулись с той же проблемой, и в итоге мы решили только модульно протестировать запрос и убедиться, что req.clone вызывается с правильными параметрами, используя шпион, а не тестирование, что клон использует параметр для изменениязапрос соответственно.

...