Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

247
Views
NodeJS Jest: función de prueba que importa el módulo usando require.main.require

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!

about 4 years ago · Juan Pablo Isaza
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!