Я запускаю тесты через узел с помощью 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 а библиотека библиотеки тестирования имитирует браузер, так что фактическая библиотека, выполняющая запрос, не имитируется для правильной среды выполнения (в моем случае браузер). Но я не совсем уверен.
Заранее спасибо