Мокинг перекрестной выборки - PullRequest
0 голосов
/ 05 августа 2020

Я запускаю тесты через узел с помощью Jest в проекте Next / React.

Я также использую перекрестную выборку.

Когда я пытаюсь имитировать перекрестную выборку fetch для моего компонента

import crossFetch from 'cross-fetch'
jest.mock('cross-fetch')
        crossFetch.mockResolvedValue({
          status: 200,
          json: () => {{ 
            user : testUser 
          }},
        })
        render(<UserProfile />)

Запрос API в getServerSideProps всегда возвращает 500

export async function getServerSideProps({ query: { userId } }) {
  let user = null
  let code = 200
  try {
    let response = await fetch(`https://example.com/users/${userId}`, { method: 'GET' }) 
    let statusCode = response.status
    let data = await response.json()
    if (statusCode !== 200) {
      code = statusCode
    } else {
      user = data.user
    }
  } catch (e) {
    console.log(e.message)
  }
  return {
    props: {
      user,
      code,
    },
  }
}

Я чувствую, что это как-то связано с тестами, запускаемыми из Node а библиотека библиотеки тестирования имитирует браузер, так что фактическая библиотека, выполняющая запрос, не имитируется для правильной среды выполнения (в моем случае браузер). Но я не совсем уверен.

Заранее спасибо

...