---
title: "Datos de prueba"
description: "Escribe fixtures por escenario y aplica seed o purge con seguridad en bases de dev, test y staging."
canonical_url: "https://razcue-agent-kit.vercel.app/es/guides/test-data"
---
# 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 [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:

```sql [supabase/test-data/seed.sql]
-- @fixture invoices.R2.S3 @boundary
SELECT public.create_invoice(p_codigo => 'TEST_INV_EDGE', p_fecha => current_date - 15, …);
```

<table>
<thead>
  <tr>
    <th>
      Etiqueta
    </th>
    
    <th>
      Datos a crear
    </th>
  </tr>
</thead>

<tbody>
  <tr>
    <td>
      <code>
        @zero
      </code>
    </td>
    
    <td>
      un padre sin hijos
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        @one
      </code>
      
       / <code>
        @simple
      </code>
    </td>
    
    <td>
      un registro normal por entidad principal
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        @many
      </code>
    </td>
    
    <td>
      varios registros: listas, totales, orden
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        @boundary
      </code>
    </td>
    
    <td>
      límites, bordes de período, bordes de redondeo
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        @interface
      </code>
    </td>
    
    <td>
      un registro por rol / ámbito
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        @exception
      </code>
    </td>
    
    <td>
      estados inactivos, anulados, inválidos
    </td>
  </tr>
</tbody>
</table>

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:

```bash [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
```

<warning>

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.

</warning>


## Sitemap

See the full [sitemap](https://razcue-agent-kit.vercel.app/sitemap.md) for all pages.
