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

167
Views
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
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!