Guías
Datos de prueba
Escribe fixtures por escenario y aplica seed o purge con seguridad en bases de dev, test y staging.
Preparación única por base de datos
Ejecuta supabase/test-data/env.sql en todos los entornos (la plantilla del monorepo lo trae en su primera migración) y fija el valor:
SQL Editor
INSERT INTO public._env (name) VALUES ('dev') -- o 'test' / 'staging' / 'production'
ON CONFLICT (id) DO UPDATE SET name = excluded.name;
Escribir fixtures
Cuando un cambio añade tablas o RPCs, o sus escenarios necesitan datos, sus tareas incluyen "ampliar seed + purge". Cada fixture es una sección marcada con sus escenarios y su categoría ZOMBIES:
supabase/test-data/seed.sql
-- @fixture invoices.R2.S3 @boundary
SELECT public.create_invoice(p_codigo => 'TEST_INV_EDGE', p_fecha => current_date - 15, …);
| Etiqueta | Datos a crear |
|---|---|
@zero | un padre sin hijos |
@one / @simple | un registro normal por entidad principal |
@many | varios registros: listas, totales, orden |
@boundary | límites, bordes de período, bordes de redondeo |
@interface | un registro por rol / ámbito |
@exception | estados inactivos, anulados, inválidos |
Cada tabla donde escribe el seed debe limpiarla purge.sql, primero las hijas. agent-kit qa gaps lista los escenarios sin fixture y los fixtures que nombran escenarios desconocidos.
Aplicar
SQL Editor (el camino soportado): ejecuta purge.sql y luego seed.sql, cada uno completo.
Desde una terminal, el agente muestra el comando y lo ejecuta solo después de que lo apruebes:
Terminal
supabase db query --linked -f supabase/test-data/purge.sql # --local o --db-url "<url>"
supabase db query --linked -f supabase/test-data/seed.sql
psql "$DATABASE_URL" -v ON_ERROR_STOP=1 -f supabase/test-data/seed.sql
Nunca uses
supabase db reset para reiniciar los datos de prueba en una base compartida: reconstruye toda la base de datos. purge.sql quita solo las filas de prueba.