> ## Documentation Index
> Fetch the complete documentation index at: https://docs.getnexor.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Probar una función programada

> Ejecuta el borrador de una función programada, o su código publicado, sin efectos reales: las lecturas se envían, las escrituras se registran como envíos pendientes con una respuesta simulada y los cambios en leads solo se previsualizan.

Ejecuta el borrador de una función programada en una copia de prueba que no puede cambiar nada. Si no hay borrador, la prueba ejecuta el código publicado.

## Qué pasa durante una prueba

| Tu código hace | Durante una prueba |
| - | - |
| Una solicitud `GET`, `HEAD` u `OPTIONS` | Se envía de verdad, con tus headers y variables de entorno. |
| Cualquier otra solicitud (`POST`, `PUT`, `PATCH`, `DELETE`) | No se envía. Tu código recibe una respuesta `200` con el cuerpo `{}`. La solicitud queda registrada en `run.requests` con `blocked: true` y su cuerpo, para que revises lo que se habría enviado. |
| Cambios en leads y otros efectos | Se devuelven como vista previa y nunca se aplican. Incluye `updateEnvironmentVariable`. |
| `WebSocket` o `EventSource` | Lanza un error. |

Sin `ctx`, la prueba carga los leads, agentes y hosts que coinciden ahora con el alcance de consulta guardado. Cargarlos solo lee datos.

Una prueba tiene los mismos límites de tiempo y de solicitudes que una ejecución real. Aparece en el historial con `trigger_source` `test`, pero no cambia `run_count`, `last_run_at` ni `last_run_status`.

<Warning>
  **Riesgos aceptados de una prueba**

  * Un `GET` que cambia algo en el otro sistema, como un enlace para darse de baja o un webhook que se dispara con `GET`, se ejecuta de verdad.
  * Las escrituras reciben una respuesta simulada `{}`. El código que lee campos de esa respuesta, como un ID que espera de vuelta, puede tomar un camino distinto al de producción.
  * Una escritura enviada con `globalThis.fetch` en vez del `fetch` o `axios` que provee Nexor también se retiene, pero no aparece en `run.requests`.
  * Una conexión TCP directa abierta con una API de sockets no se retiene.
</Warning>

## Lee el resultado

* `run.status` es `success`, `error` o `timeout`. Un error en tu código es una llamada exitosa con `run.status` `error`.
* `run.effects` lista los cambios en leads previsualizados.
* `run.requests` lista cada solicitud hecha con `fetch` o `axios`. Las que tienen `blocked: true` no se enviaron.
* `run.mode` es `test`.

Un 503 `DEPLOYMENT_NOT_CURRENT` significa que no se pudo preparar la copia de prueba. No se ejecutó ni se registró nada. Reintenta en un momento.

Para verificar una escritura real, publica el código con la función en pausa, y luego usa [Ejecutar ahora](/docs/es/api/scheduled-functions/run-scheduled-function) después de que el operador lo confirme.


## API Specification

The full API specification for this endpoint is available in the [documentation index](https://docs.getnexor.ai/llms.txt).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.