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

157
Vistas
¿Manejador de ruta de prueba unitaria con Jest?

Tengo el siguiente fragmento de código que funciona como controlador para mi ruta determinada. Estoy tratando de realizar la prueba unitaria usando Jest pero no tengo idea de qué cosas puedo probar en la siguiente función. Logré probar algo, pero no estoy seguro de si estoy en la dirección correcta o no y qué probar.

ruta.js

 exports.routeHandler = function (param1, param2) { return async function(req, res){ const { id } = req.params; try { const user = await param1.user.getAuthUser(res); if(!user) return res.sendStatus(404).json(); const results = await getUserId(user, param1, param2); const getInformation = await getInfo(results, id, param1, param2); res.sendStatus(200).json({ getInformation }) } catch (error) { return res.sendStatus(500); } } }

ruta.prueba.js

 const mockResponse = () => { const res = {}; res.sendStatus = jest.fn().mockReturnValue(res); res.json = jest.fn().mockReturnValue(res); return res; } const mockRequest = () => { return { params: { id : 1 } } } const mockParam1 = { user: { getAuthUser: jest.fn() } }; const mockParam2 = { error: jest.fn() }; describe('checkAuth', () => { test('should 404 if user is not set', async() => { const req = mockRequest(); const res = mockResponse(); const routeHandlerTest = routeHandler(mockParam1, mockParam2); await routeHandlerTest(req, res) expect(res.sendStatus).toHaveBeenCalledWith(404); }) })

Otro problema aquí es que no puedo simular o espiar la función getUserId y getInfo .

getUserId.js

 async function getUserId(user, param1, param2) { try { return await param1.database.query( 'SELECT "id" from "user" WHERE "username" = $username', { type: "SELECT", bind: { username: user.username }, } ); } catch (error) { param2.error(error); } }

getInfo.js

 async function getInfo(results, id, param1, param2) { try { return await param1.database.query( // query , { type: "SELECT", bind: { id: id, userId: results[0].id, }, } ); } catch (error) { param2.error(error); } }

Nota: las funciones getUserId y getInfo están en módulos diferentes

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