Невозможно имитировать POST-запрос с помощью nock

Я использую fetch API и nock, чтобы издеваться над почтовым запросом. Тест выглядит так:

it('should handle the triple bracket replacements ', async () => {
  nock('https://jives.dev')
    .post('/', {
      bestCat: 'cat'
    })
    .reply(200, {
      data: '12345'
    })

  const data = await retrieveData({
    endpoint: 'https://jives.dev/',
    configuration: JSON.stringify({
      method: 'POST',
      body: {
        bestCat: 'cat'
      }
    }),
    auth: {cat: 'cat'}
  })

  expect(data).toEqual({data: '12345'})
})

Функция retrieveData запускает fetch и просто сопоставляет конечную точку и аргументы конфигурации с запросом следующим образом:

fetch('https://jives.dev/', {
  method: 'POST',
  body: {
    bestCat: 'cat'
  }
})

В итоге я получаю сообщение об ошибке, как будто nock не издевается над запросом. Я могу заставить его работать для get запросов, но я не уверен, почему это не работает в этом примере. Сообщение об ошибке выглядит так, как будто оно пытается сделать почтовый запрос вместо возврата данных из nock.

- Expected  - 3
+ Received  + 1

- Object {
-   "data": "12345",
- }
+ [Error]

person James Ives    schedule 16.05.2020    source источник


Ответы (1)


Это было вызвано тем, что я не убрал все макеты в наборе шуток. Следующее решило это.

afterEach(nock.cleanAll)
afterAll(nock.restore)
person James Ives    schedule 16.05.2020