Estoy tratando de entender cómo simular una llamada de function dentro de un módulo cuando la función devuelve un objeto, digamos que tengo un archivo
Sample.ts
export function food(){ return new Fruit(); } export function taste(){ return food().getTaste(); } Ahora digamos que estoy tratando de probar un escenario en el que el taste() arroja un error cuando getTaste() arroja un error.
Entiendo que puedo aprovechar la "dependencia cíclica del módulo ES6" para importar el módulo en sí mismo como:
import * as sample from './sample'; export function food(){ return new Fruit(); } export function taste(){ return sample.food().getTaste(); } Pero no estoy seguro mientras pruebo cómo devuelvo la fruta mockedReturnValue .
const mockedFruit = jest.mock("./fruit", () => ({ getTaste: jest.fn().mockImplementation(() => { throw new Error("Test Error"); }), promise: jest.fn() })); test('taste', () => { const sample = require('./sample'); jest.spyOn(sample, 'food').mockReturnValue(mockedFruit); expect(sample.taste()).toThrowError(); })