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, …);
EtiquetaDatos a crear
@zeroun padre sin hijos
@one / @simpleun registro normal por entidad principal
@manyvarios registros: listas, totales, orden
@boundarylímites, bordes de período, bordes de redondeo
@interfaceun registro por rol / ámbito
@exceptionestados 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.