Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

169
Vistas
Burlarse del objeto req.user para las pruebas de MochaJS

En una de mis rutas de ExpressJS, estoy usando la estrategia de portador HTTP y la estrategia local de PassportJS juntas. Significa que el usuario debe iniciar sesión y debe tener un token de portador para llegar a esa ruta.

 function isLoggedIn(req, res, next) { // if user is authenticated in the session, carry on if (req.isAuthenticated()) return next(); // if they aren't redirect them to the home page res.redirect('/login'); } app.route('/api/someaction') .get(passport.authenticate('bearer', { session: false }), isLoggedIn, function(req, res, next) { console.log(req.user.userID); });

Cuando busco esta ruta con mi navegador o con Postman (después de configurar las cookies para la estrategia local), funciona como se esperaba.

Ahora necesito escribir pruebas de integración para esta ruta con MochaJS/ChaiJS. Este es mi archivo de prueba:

 var server = require('../app.js'); var chai = require('chai'); var chaiHttp = require('chai-http'); var should = chai.should(); var expect = chai.expect; chai.use(chaiHttp); describe('...', () => { it('...', (done) => { chai.request(server) .get('/api/someaction') .set('Authorization', 'Bearer 123') .end((err, res) => { // asserts here done(); }); }); });

Al probar este archivo con MochaJS, req.user.userID en /api/someaction siempre está indefinido.

¿Cómo puedo burlarme de las estrategias de PassportJS para obtener un objeto req.user dentro de la ruta?

about 4 years ago · Santiago Trujillo
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda