Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

239
Visualizações
¿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 à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda