Estoy tratando de escribir pruebas unitarias usando Jest para un proyecto de Node JS. Estaba importando todos los módulos usando require.main.require
A continuación se muestra la simulación del problema. El código se puede encontrar aquí: https://stackblitz.com/edit/node-jest-demo?file=index.js
Tengo el siguiente archivo de prueba presente en mi directorio raíz en el que estoy importando index.js
./sample.pass.test.js
const { checkUser } = require('./index'); console.log(checkUser); // This is purely to check If i can access checkUser from this file or not describe('Testing...', () => { it('Should pass', () => { expect(0).toBe(0); }); });En mi index.js estoy importando otra función usando require.main.require
const { getUserById } = require.main.require('./models/UserModel'); function checkUser(id) { const user = getUserById(id); return user ? 'Found' : 'Not Found'; } module.exports.checkUser = checkUser;El caso de prueba anterior está pasando. Pero si tuviera que colocar el mismo archivo de prueba en algún otro directamente (como _ test_ ), entonces falla.
Por ejemplo: ./__ prueba __/sample.fail.test.js
Observe aquí que ajusté la declaración requerida de índice ya que ahora está un nivel más arriba
const { checkUser } = require('../index'); console.log(checkUser); describe('Testing...', () => { it('Should pass', () => { expect(0).toBe(0); }); });El resultado muestra que no puede acceder a UserModel.
Cannot find module './models/UserModel' from '__tests__/sample.fail.test.js' Require stack: index.js __tests__/sample.fail.test.js > 1 | const { getUserById } = require.main.require('./models/UserModel'); | ^ 2 | 3 | function checkUser(id) { 4 | const user = getUserById(id);¿Cuál podría ser la solución en este caso?
¡Gracias de antemano!