Ejercicio de revisión de código · 8 MIN
Revisa un cambio generado por IA
Examina un endpoint breve. Decide qué pruebas necesitas antes de aceptar el cambio.
La situación
Un asistente de IA propone un endpoint de facturas. Un usuario con sesión iniciada solo debe ver facturas de su propia organización. Revisas el cambio antes de que pueda publicarse.
Qué hacer
- Lee el código y su explicación en lenguaje claro. No necesitas ejecutarlo.
- Selecciona todas las comprobaciones necesarias antes de aceptar. Comprueba tus respuestas, lee los motivos e inténtalo de nuevo si falta alguna.
Revisas esta PR. La función debe devolver una factura solo a un usuario autenticado de la misma organización. El fragmento está incompleto.
// Fictional, incomplete example. Do not deploy.
app.get('/invoices/:id', async (req, res) => {
const invoice = await db.invoice.findUnique({
where: { id: req.params.id }
});
console.log('Invoice response', invoice);
return res.json(invoice);
});¿Qué hace el código?
El endpoint toma un identificador de factura de la solicitud, obtiene esa factura, registra la factura completa y la devuelve. El fragmento no muestra quién comprueba el derecho del usuario a esa factura.
La autenticación comprueba quién es el usuario. La autorización comprueba qué puede hacer. El middleware es código que procesa la solicitud antes de este endpoint. Puede contener comprobaciones ausentes en este fragmento.
PARA TERMINAR
¿Una solicitud satisfactoria demuestra que el endpoint de facturas es seguro?
Compara tu respuesta con la explicación
No. Demuestra que una solicitud funcionó. También necesitas pruebas de que un usuario no puede leer una factura de otra organización. Examina la ruta completa de la solicitud, el comportamiento ante registros ausentes y los logs. Una prueba satisfactoria debe cubrir el requisito que importa.
Aplícalo en el trabajo
En tu próxima revisión de PR, añade una prueba para una acción que deba denegarse.
Elige otro ejercicio