Я тестирую функцию (родитель), которая вызывает функцию (slomo), которая возвращает обещание. я хочу проверить, выполняется ли код внутри .then ().
function slomo() {
return new Promise(function (resolve, reject) {
resolve('good')
reject('bad')
})
}
child = jest.fn()
function parent() {
slomo()
.then((result) => {
child()
})
}
// TEST
it('runs child', () => {
parent()
expect(child).toHaveBeenCalledTimes(1)
})
результат:
Expected mock function to have been called one time, but it was called zero times.
Я подтвердил, что дочерняя функция IS вызывается через console.log, но она регистрируется ПОСЛЕ тест завершен.
Я пытался передать и вызвать done
внутри теста, но это не решило проблему.
может быть, приведенный выше код является анти-паттерном и должен быть переписан, чтобы его можно было проверить?
любая помощь, которую вы можете мне оказать, очень ценится!
Счет