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

245
Vistas
¿Cómo simular el valor de retorno de middleware en supertest?

Traté de probar mi API usando super test, pero cuando agrego un middleware de autenticación, no sé cómo simular el middleware, aquí está mi código.

authMiddleware.js

 export const authMiddleware = async (req: RequestWithUser, res: Response, next: NextFunction) => { try { const Authorization = req.cookies['Authorization'] || req.header('Authorization').split('Bearer ')[1] || null; if (Authorization) { const secretKey: string = config.get('secretKey'); const verificationResponse = (await jwt.verify(Authorization, secretKey)) as DataStoredInToken; console.log(verificationResponse); const userId = verificationResponse._id; const findUser = await userModel.findById(userId); if (findUser) { req.user = findUser; next(); } else { next(new HttpException(401, 'Wrong authentication token')); } } else { next(new HttpException(404, 'Authentication token missing')); } } catch (error) { next(new HttpException(401, 'Wrong authentication token')); } };
 describe('[GET] /users/:id', () => { it('response findOne User', async () => { const userId = 'qpwoeiruty'; const usersRoute = new UsersRoute(); const users = usersRoute.usersController.userService.users; users.findOne = jest.fn().mockReturnValue({ _id: 'qpwoeiruty', email: 'a@email.com', isAdmin: false, password: await bcrypt.hash('q1w2e3r4!', 10), }); (mongoose as any).connect = jest.fn(); const app = new App([usersRoute]); return request(app.getServer()).get(`${usersRoute.path}/${userId}`).expect(200); }); });

El dúo fallido de la prueba anterior a mi solicitud no tenía autorización en el encabezado, y pienso en establecer el encabezado, pero cuando se trata de

 const finder = await userModel.findById(userId);

esto fallará ya que está relacionado con la acción del servidor y la base de datos real, por lo que no creo que sea la forma correcta de escribir esta prueba.

Lo que quiero hacer es burlarme de mi variable authMiddleware, por ejemplo

 const findUser = jest.fn().mockReturnValue( .... )

para que el middleware de autenticación pueda pasar, ¿cuál es la forma correcta de hacerlo aquí?

about 4 years ago · Juan Pablo Isaza
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