Skip to content

fix: el 404 del rechazo devolvía la fila, y el hub vencía tareas de hoy - #88

Closed
JoseSerpaCode wants to merge 1 commit into
mainfrom
fix/fuga-rechazo-y-fecha-hub
Closed

JoseSerpaCode wants to merge 1 commit into
mainfrom
fix/fuga-rechazo-y-fecha-hub

Conversation

@JoseSerpaCode

Copy link
Copy Markdown
Owner

Bloque A del plan, los dos primeros: pequeños, de riesgo alto y sin decisiones de por medio.

A.3 — Fuga de datos al rechazar una solicitud

api/friends/reject/[id].ts devolvía en el 404 un dbState con el SELECT * entero de la amistad — action_user_id, el id de la otra persona, las marcas de tiempo — a quien acababa de fallar la comprobación de permisos. Había además un console.log de cada intento. Depuración que se quedó puesta.

Sus dos hermanos, accept/[id].ts y cancel/[id].ts, responden 'Not Found or Unauthorized' a secas. Este era el único de los tres fuera del patrón.

A.2 — El hub marcaba vencida una tarea que vence hoy

Hub.astro:78 comparaba con new Date().toISOString(), que da el día en UTC. En Bogotá, a partir de las siete de la tarde, el servidor ya cree que es mañana.

Lo llamativo: lib/fechas.ts documenta ese caso exacto en su comentario —nombrando Bogotá— y expone vencida() desde entonces. IssueCard.astro ya la usa. Este contador reimplementó la comparación por su cuenta y se trajo el fallo de vuelta.

Plan de pruebas

  • npm run lint, npm run typecheck — limpios
  • 326 unitarias (4 nuevas), 238 e2e (1 nueva)
  • Las dos verificadas reintroduciendo su fallo: fallan
  • La de fechas fija la hora del sistema a las 22:00 en UTC-5, que es lo único que reproduce el de UTC — por la mañana no falla nunca

🤖 Generated with Claude Code

Dos fallos pequeños de riesgo alto.

- `friends/reject/[id].ts` devolvía `dbState` con el `SELECT *` de la amistad a
  quien acababa de fallar la comprobación de permisos, más un `console.log` de
  cada intento. Sus dos hermanos responden con la frase a secas.
- El contador de vencidas del hub comparaba en UTC, así que en UTC-5 marcaba
  como vencida una entrega de hoy a partir de las siete de la tarde.
  `lib/fechas.ts` ya tenía `vencida()` y su comentario advierte del caso
  nombrando Bogotá; el hub reimplementó la comparación a mano.

Las dos pruebas verificadas reintroduciendo su fallo. La de fechas fija la hora
del sistema, que es lo único que reproduce el de UTC.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@JoseSerpaCode

Copy link
Copy Markdown
Owner Author

Consolidada en una sola PR con las cinco correcciones y una versión coherente. Se abrió como fix/bloque-a.

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.

1 participant