Tengo un problema con las funciones simuladas llamadas desde mi módulo. cuando se llama a la función simulada desde la prueba, funciona como se esperaba. pero cuando se llama a esa misma función simulada desde la biblioteca, llama a la función real.
Probé el jest.mock('./myModule', () => {}) y también enableAutomock , pero con los mismos resultados.
Siento que no he tenido este problema en otros proyectos, pero he revisado mi configuración de broma y no veo nada que pueda afectarlo.
¿que me estoy perdiendo aqui? ¿Cómo puedo simular funciones llamadas internamente dentro de mi módulo?
// myModule.js export function foo() { return 'foo' } export function bar() { return foo() } // myModule.test.js import * as myModule from './myModule'; jest.spyOn(myModule, 'foo').mockReturnValue('mock foo'); // i have also tried... // jest.mock('./myModule', () => { // ...(jest.requireActual('./myModule')), // foo: jest.fn().mockReturnValue('mock foo') // }); it('should', () => { expect(myModule.foo()).toEqual('mock foo'); // PASS: returns 'mock foo' expect(myModule.bar()).toEqual('mock foo'); // FAIL: returns 'foo' });Encontré usando ts-jest en mi configuración de broma, permití que estas pruebas se ejecutaran como esperaba
transform: { '^.+\\.[tj]sx?$': ['ts-jest'], },