Я пытаюсь проверить приведенную ниже функцию
getVal(process) {
test.on('data', async data => {
try {
for (const val of data) {
await process(val);
console.log('processed')
}} catch (e) {}
});
test.on('error', err => {
console.log('error', err)
});
}
process(payload) {
return new Promise(resolve=>{.....})
};
Тест Jest: // in beforeEach
mockData =[an array containing 10 values]
onSpy = jest
.fn()
.mockImplementationOnce(async (data, callback) => {
callback(mockData);
})
.mockImplementationOnce((error, callback) => {
callback(mockErr);
});
it('should trigger callback once per message', async () => {
await xyz.getVal(process);
await expect(process).toHaveBeenCalledTimes(10);
});
Я ожидаю, что process()
будет вызываться 10 раз сданные отправляются 10 раз.Однако он вызывается только 2 раза, когда я утверждаю, но когда я помещаю console.log в саму функцию и запускаю тест, он вызывается 10 раз.
Я не уверен, что не так.Ценю любую помощь.