Поддельный запрос на отправку суперагента с несоответствием nock

Я не могу, хоть убей, заставить работать простой суперагентный почтовый запрос. Вот моя конфигурация суперагента и нока.

суперагент:

request
  .post('https://test.com/api/login')
  .send({
    email: '[email protected]',
    password: 'testpassword'
  })
  .end((err, res) => {
    if (err) {
      console.log(err);
    }
  });

нок:

nock('https://test.com')
  .post('/api/login')
  .send({
    email: '[email protected]',
    password: 'testpassword'
  })
  .reply(200, {
    id: 1,
    token: 'abc'
  });

Я получаю следующую ошибку от nock:

{[Ошибка: Nock: не соответствует запросу POST https://test.com/api/login { "email": "[email protected]", "password": "testpassword"}] status: 404, statusCode: 404, ответ: undefined}

Еще один странный аспект заключается в том, что эта ошибка регистрируется в моем обработчике ответа суперагента. Итак, я знаю, что звонок был перехвачен.


person ThinkingInBits    schedule 31.12.2015    source источник


Ответы (2)


Ок - разобрался. Еще немного покопавшись в документации, я нашел функцию .log. Я приковал свою конфигурацию носка вот так

nock('https://test.com')
    .log(console.log)...

и оказывается, что тела запроса не совпадают.

person ThinkingInBits    schedule 31.12.2015
comment
Сэкономил кучу времени - person Shaolin; 27.09.2016
comment
Похоже, интерфейс для nock изменился (связанный с постом). Вместо того, чтобы связывать вызов с .post (/ api) .send ({..}), теперь вам, кажется, нужно выполнить .post (/ api, {..}). Надеюсь, это поможет - я использую nock v8. - person RichS; 01.11.2016

.send() заменяется отправкой тела сообщения в качестве второго параметра после самого URL-адреса, а .log не работает до .reply

person julian joseph    schedule 28.12.2016