Estoy usando Jest para probar una función js. En mi función tengo una variable de bandera. Si la bandera es verdadera, necesito otro archivo js (que está en la misma carpeta de función para probar), de lo contrario, obtengo la ruta del archivo para incluir. Para esto en mi función tengo:
var utility; if(flag) { utility = require('./utility'); } else { utility = require(Runtime.giveFunctions()['utility'].path); } const variable = utility.getValue(someParameters);Es suficiente cubrir la rama 'else' y para esto quiero regresar desde la ruta: './utility'. En mi prueba escribo:
const Runtime = { giveFunctions: jest.fn().mockReturnValue({ utility: jest.fn().mockReturnValue({ path: jest.fn().mockReturnValue('./utility') }) }) }; window.Runtime = Runtime;Cuando ejecuto la prueba, recibo el error: utility.getValue no es una función (getValue es la función definida en utility.js). Más aún, si en mi función uso console.log para imprimir 'Runtime', leo: Runtime.giveFunctions()['utility'].path undefined. Creo que no me burlé bien de la propiedad de la ruta. ¿Cómo puedo solucionar este problema? Gracias a todos.