У меня есть следующие простые настройки теста:
test('what did I do to deserve this', async () => {
expect.assertions(1)
const data = await fetchData() // or fetchData2
expect(data).toBe('peanut butter')
})
async function fetchData () {
return "peanut butter"
}
async function fetchData2 () {
return knex.select('name').from('foos')
}
Когда я использую fetchData
шутка заканчивается счастливо.
Но когда я использую fetchData2
, он жалуется на это:
Jest не вышел из системы через секунду после завершения тестового прогона.
Это обычно означает, что существуют асинхронные операции, которые не были
остановился на ваших тестах. Рассмотрите возможность запуска Jest с
--detectOpenHandles
для устранения этой проблемы.
Переменная данных имеет результат запроса db, и другие вызывающие абоненты, более высокие в API, разрешают запрос в порядке и продолжают выполнение других операторов.
Я пытался:
- флаг
--detectOpenHandles
, но он мне ничего не показывает.
- делает ожидаемый проход для
fetchData2
в случае, если проблема, описанная здесь
- передача
done
arg в асинхронную функцию в test
. Он существует, но его вызов не устраняет предупреждение.
- бросать в него блоки try / catch
Спасибо за любую помощь, чтобы сделать это счастливым.
Версии вещей:
- Узел v11.1.0
- "шутка": "^ 23.6.0"
- "knex": "^ 0.15.2"