Мой Backend - express. js, он принимает имя и пароль в качестве логина. Запрос должен быть POST, URL запроса должен быть localhost:3000/api/login
, а ответ должен быть в формате, указанном в конце вопроса. Я пытаюсь проверить это поведение, и поэтому я написал следующий модульный тест:
it('login should be POST, have proper URL and return proper JSON', () => {
const authService = TestBed.get(AuthenticationService);
const http = TestBed.get(HttpTestingController);
let loginResponse;
const responseForm = '<form />';
authService.login('Test', 'testtest').subscribe((response) => {
loginResponse = response;
});
http.expectOne((request: HttpRequest<any>) => {
return request.method == 'POST'
&& request.url == 'http://localhost:3000/api/login'
&& JSON.stringify(request.body) === JSON.stringify({
_id: 'idhere', firstname: 'namehere', password: 'passwordhashhere',
})
&& request.headers.get('Content-Type') === 'application/json';
}).flush(responseForm);
expect(loginResponse).toEqual(responseForm);
});
Я получаю ошибку:
Error: Expected one matching request for criteria "Match by function: ", found none.
ОБНОВЛЕНИЕ
Мой ответ от API следующий: _id:'idhere', firstname: 'firstnamehere', password:'passwordhashhere'