SpyOn exportado individualmente funções ES6
tl; dr:
eu usoJasmim;Eu quero testaraaa
função que chamoubbb
do mesmo módulo;Eu quero espionarbbb
, mas eventualmenteaaa
chamou o originalbbb
função, não um espião;Como posso forçaraaa
chamar o espião?
O módulo:
export function aaa() {
return bbb();
}
export function bbb() {
return 222;
}
O teste:
import * as util from 'my-module';
describe('aaa test', () => {
let bbbSpy: Spy;
beforeEach(() => {
bbbSpy = spyOn(util, 'bbb');
});
it('should return SPYED', () => {
bbbSpy.and.returnValue('SPYED!!');
const result = util.aaa();
expect(result).toEqual('SPYED!!'); // Doesn't work - still 222
});
});
Então, basicamente isso não funciona. Alguém pode me ajudar por favor?
P.S. Não quero alterar o código do módulo, porque nesse caso terei que alterar toneladas de código no projeto. Eu preciso de uma solução geral para testes.