Когда я пытаюсь вызвать метод, while l oop в методе выполняется только один раз вместо заданных 5 раз. Есть ли решение этой проблемы?
//mock.js
const TestModel = require('src/models/testModel')
const mockFunction = async (id) => {
let i = 0
while(i < 5){
console.log(i)
const response = await calledFunction(id)
return response
i = i + 1
}
}
const calledFunction = async(id) => {
console.log(id)
const testModels = await TestModel.findById({ id })
return testModels
}
module.exports = {
mockFunction
}
И это мой тест
//mock.test.js
const mongoose = require('mongoose')
const { mockFunction } = require('./mock')
const TestModel = require('src/models/testModel')
jest.setTimeout(75000);
TestModel.findById = jest.fn()
TestModel.findById = jest.fn().mockReturnValue({
_id: '5dbff32e367a343830cd2f49',
name: 'Label',
__v: 0
})
test('mock test', async () => {
mockFunction(new mongoose.Types.ObjectId())
.then(function (result) {
console.log(result)
})
})
Я использовал макеты здесь, чтобы вернуть фиктивный ответ, и у меня нет с ним проблем . Предположительно, while l oop должен выполняться 5 раз в приведенном выше случае, но тест останавливается, как только он выполняется только один раз. Есть проблемы с тестом? Должен ли я изменить mock. js или mock.test. js?
Я новичок ie в node.js, и любая помощь будет оценена. Заранее спасибо.