Tengo una función como esta:
export const myFunc = (a, b ,callBack) => { const timer = setTimeout(() => { callBack(a+b); }, 10); return () => clearTimeout(timer); };Puedo probar la función de devolución de llamada muy bien haciendo esto:
jest.useFakeTimers(); describe('myFunc', () => { const callBack = jest.fn(); it('runs myFunc', () => { myFunc(1, 2, callBack); jest.runAllTimers(); expect(callBack).toHaveBeenCalledWith(3); }); Sin embargo, la última línea return () => clearTimeout(timer) nunca se prueba de alguna manera. El informe de broma solo dice que esta function not covered y la statement not covered . ¿Alguien puede decirme una forma de cubrir esta línea sin usar ninguna otra biblioteca de prueba externa como la enzima?
La función no se llama, por lo que no está cubierta.
Otra prueba sería:
let cleanup = myFunc(1, 2, callBack); cleanup() jest.runAllTimers(); expect(callBack).not.toHaveBeenCalled();