Вход в систему POST запрос теста не пройден - PullRequest
0 голосов
/ 12 февраля 2020

Мой 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'

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...