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

158
Visualizações
¿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 à 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