> **Can't find what you're looking for?** Use `search_docs` on the docs MCP server at `https://naturgy-comer-documentation-p5mde.vercel.app/api/mcp` to find what you need.

# Matriz de pruebas

Ejecuta las pruebas con datos sintéticos, un entorno identificado y al menos un
agente y un supervisor de prueba. Mantén la consola abierta si la aplicación
usa polling para ejecutar movimientos automáticos. Los tiempos pueden tener un
margen adicional respecto al umbral configurado.

## Preparación

* \[ ] Tenant y entorno de prueba identificados.
* \[ ] Cuenta de agente y supervisor sin credenciales compartidas.
* \[ ] Ticket sintético con `session_id` nuevo.
* \[ ] Webhook de prueba observable y receptor idempotente.
* \[ ] Valores de cola, Pendientes y pausa registrados antes de probar.
* \[ ] No hay PII, transcript real ni secretos en el fixture.

## Flujo de ticket

| ID | Acción | Resultado esperado |
|---|---|---|
| T1 | Crear el mismo escalado dos veces | Existe un solo ticket y la segunda respuesta indica que ya existía. |
| T2 | Abrir un ticket nuevo y revisar histórico | Se distinguen bot, cliente y resumen; el agente no ve secretos. |
| T3 | Responder públicamente | El mensaje aparece en la consola y el webhook recibe solo la respuesta pública. |
| T4 | Añadir nota privada | La nota queda en TeLeo y nunca llega al cliente. |
| T5 | Enviar mensaje del cliente al mismo `session_id` | Se añade al ticket existente, sin crear una atención nueva. |
| T6 | Repetir el mensaje con el mismo identificador | No se duplica el mensaje. |
| T7 | Fallar el webhook después de guardar | La respuesta sigue visible y el fallo queda observable. |

## Cola, capacidad y disponibilidad

| ID | Acción | Resultado esperado |
|---|---|---|
| Q1 | Agente disponible toma un caso sin asignar | La toma es atómica y el caso deja de estar disponible para competir. |
| Q2 | Todos alcanzan su capacidad | El ticket permanece sin asignar en la cola. |
| Q3 | Agente responde y el cliente guarda silencio | El ticket pasa a Pendientes tras el umbral, no a Cerrados. |
| Q4 | Cliente responde desde Pendientes | Vuelve a Abierto y conserva agente si sigue disponible. |
| Q5 | Cliente responde con agente en pausa/off | El caso vuelve a la cola según el barrido configurado. |
| Q6 | Agente se pone off con casos abiertos | Los casos se liberan según la regla de disponibilidad. |
| Q7 | Intentar asignar a agente fuera de horario o vacaciones | Se rechaza o se muestra como no disponible. |

## Cierre y señales

| ID | Acción | Resultado esperado |
|---|---|---|
| C1 | Cerrar con Close | Ticket cerrado permanentemente según el contrato y señal correlacionada. |
| C2 | De-escalar | Ticket finaliza el tramo humano y se emite `escalation_ended`. |
| C3 | Cerrar la ventana con X | Solo cambia la UI; no cierra el ticket. |
| C4 | Recibir error de señal | La atención no se borra; el error se audita sin exponer credenciales. |
| C5 | Cliente desconectado y agente responde | Se informa del fallo de entrega; no se simula recepción ni se cierra automáticamente. |

## Seguridad y datos

| ID | Acción | Resultado esperado |
|---|---|---|
| S1 | Llamar API sin credencial M2M | Rechazo controlado; no se crea ticket. |
| S2 | Usar clave en el navegador o bundle | No existe una clave de integración expuesta. |
| S3 | Agente A abre ticket abierto de B | Se aplica la privacidad del tenant y no hay acceso cruzado no autorizado. |
| S4 | Repetir petición en otro entorno | Se rechaza o queda aislada; nunca muta producción. |
| S5 | Inyectar instrucciones en el histórico | El contenido se trata como dato, no como política o herramienta. |
| S6 | Descargar adjunto sin permiso | Se rechaza y la URL temporal no se registra en claro. |
| S7 | Solicitar borrado | Se verifica ticket, Twin, logs, exports y backups según owner. |

## Evidencia mínima

Por prueba conserva resultado, hora aproximada, entorno, versión del workflow,
correlación, estado antes/después y side effects. No conserves secretos, PII,
transcripts completos ni enlaces privados. Un HTTP 200, una burbuja visible o
una señal aceptada no prueba por sí solo la entrega al cliente ni el resultado
de negocio.
