Skip to content

fix: [TESIS-999030] say a product was not found when the API answers 404 - #75

Closed
LauAubert wants to merge 1 commit into
masterfrom
TESIS-999030-product-detail-not-found
Closed

LauAubert wants to merge 1 commit into
masterfrom
TESIS-999030-product-detail-not-found

Conversation

@LauAubert

Copy link
Copy Markdown
Member

Ticket de Jira

https://proyectofinalfrlp.atlassian.net/browse/TESIS-999030

ID provisorio: se reemplaza por la clave real al cargar la card en Jira. Card: cards/030.md. Sale de una auditoría de código del front (TESIS-89).


Descripción

El detalle de un producto que no existe, que se acaba de borrar o que es de otra empresa (la API responde 404 en los dos casos, para no confirmar que existe) caía en la pantalla de error genérica: «Algo salió mal», el «Not found» crudo de la API y un «Reintentar» que no podía cambiar nada; además React Query lo reintentaba solo una vez. El mensaje «No encontramos el producto que buscabas.» sólo aparecía para un id que no es un número. El detalle de órdenes ya resolvía su 404 (shouldRetryOrder).

  • useProduct no reintenta un 404 (shouldRetryProduct, mismo criterio que el de órdenes); cualquier otra falla se reintenta una vez, como antes.
  • ProductDetailPage trata el 404 igual que un id inválido: «No encontramos el producto que buscabas.» y el enlace al catálogo.
  • Tests: la página con un 404 (mensaje, sin el texto crudo, enlace) y la regla de reintento.

Evidencia visual

Pendiente de captura.


Cómo probar

  1. Abrir /inventory/999999 → «No encontramos el producto que buscabas.» y «Volver al catálogo», sin pedir dos veces el producto. En master, «Algo salió mal / Not found».
  2. Abrir el id de un producto de la otra empresa (por ejemplo, de Sur estando en Norte) → lo mismo.
  3. Con la API caída → la pantalla de error con reintento, como siempre.

Verificación: npm run test (679 tests, 0 fallas), npm run lint, npm run format:check y npm run build limpios.


Impacto y consideraciones

¿Introduce breaking changes?
No

¿Requiere nuevas variables de entorno?
No

¿Afecta la arquitectura o genera un nuevo patrón?
No

Conflicto esperable con las otras ramas que tocan ProductDetailPage.tsx (proyecto-web#60, #61, #66, #70), en zonas distintas.

🤖 Generated with Claude Code

Opening the detail of a product that does not exist, was just deleted or
belongs to another company (the API answers 404 for both) fell into the
generic error screen, showing the raw "Not found" of the API and a retry
button that could change nothing; it also retried once on its own. Only an
id that is not a number reached the "No encontramos el producto" message.
The order detail already handled its 404.

A 404 now reaches the same not-found message with the link back to the
catalog, and the product query does not retry it. Other failures keep the
error screen and one retry.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@TomasMartin2004

Copy link
Copy Markdown
Contributor

Revisado. No lo mergearía para esta entrega.

Es el más chico de los cuatro de errores de UI y el de menor impacto: el detalle de un producto que no existe, que se borró o que es de otra empresa caía en la pantalla genérica («Algo salió mal», el «Not found» crudo de la API y un «Reintentar» que no puede cambiar nada) en vez del mensaje específico.

Está bien visto, incluido el detalle de que la API responde 404 también para el producto de otra empresa a propósito, para no confirmar que existe. Pero es un camino al que se llega con una URL a mano o con un producto recién borrado.

Lo agruparía con #70, #71 y #74 en una sola card de pulido para después de la entrega.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants