Share surfaces database test fails when the local database already has rate limit counters

Abierto Apto para principiantes
#301 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
2/5
Tiempo estimado
1-3 horas
Aptitud para principiantes
82/100
Tipo de issue
Error
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
postgresql, sql, supabase

Línea de trabajo

La aserción que falla es el test 25 alrededor de la línea 205 de supabase/tests/database/16_public_share_surfaces.test.sql, que llama a purge_public_rate_limit_counters(date_trunc('minute', now()), 100) y espera cero eliminaciones. Lee el archivo completo para ver cómo el test siembra sus contadores del minuto actual y que se ejecuta dentro de una transacción revertida; luego, o bien elimina los contadores antiguos preexistentes dentro de esa transacción antes de las comprobaciones de purge, o bien verifica que las filas sembradas del minuto actual todavía existen. Reproduce con npm run test:db en un stack local que ya contiene contadores de ejecuciones e2e anteriores; terminado cuando el test 25 pasa en esa base de datos sucia, sigue fallando si se purga un contador del minuto actual, y ningún otro test del archivo depende de filas que no creó. Ten en cuenta que el issue hermano #247 rastrea el mismo patrón en 15_project_pages.test.sql test 6.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

area: database bug impact: low priority: P3 size: XS

Summary

supabase/tests/database/16_public_share_surfaces.test.sql test 25 expects purge_public_rate_limit_counters(date_trunc('minute', now()), 100) to delete nothing (line 205). The purge is instance wide by design (it is the retention job), so on a local database where earlier requests to the badge, card, or public JSON routes left counters from past minutes, it deletes those rows and the test fails even though nothing is wrong:

# Failed test 25: "purge_public_rate_limit_counters: the current minute's counters are kept"
#         have: 12
#         want: 0

Reproduced on 2026-11-11 with npm run test:db against the shared local stack, on integration/demo-2026-11 and on the 258-workspace-handles branch alike; that branch does not touch the file or the function. The shared database held 13 counter rows from earlier e2e runs at the time. CI passes only because it starts from an empty database.

The same kind of failure in 15_project_pages.test.sql test 6 is already tracked in #247.

Fix

Make the assertion independent of rows the test did not create. For example, delete the counters older than the current minute inside the test's transaction before the two purge checks (the file already rolls back), or assert that the counters the test seeded for the current minute are still present instead of asserting how many rows the purge deleted.

Acceptance criteria

  • Test 25 passes on a local database that already holds rate limit counters from earlier minutes.
  • Test 25 still fails if the purge deletes a counter from the current minute.
  • No other test in the file depends on rows it did not create.

Model: anthropic/claude-opus-5-5 | Reasoning effort: unknown

Lenguaje dominante
TypeScript
Estrellas
1
Forks
1
Merge medio
6 h 56 min
PR fusionados (30 d)
136

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de eddiejaoude/StackDash

Todos los issues de eddiejaoude/StackDash

Issues similares

Más issues de TypeScript

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.