Latencia de observación y de entrega son relojes distintos
Polling vs realtime en tests de email: elige una espera, no una falsa garantía de entrega
Polling y eventos solo cambian cómo observas el inbox; no controlan cuándo el sender, la cola o SMTP entregan el mensaje.
Un timeout puede venir del sender, de la entrega, del canal realtime o del filtro usado para encontrar el mensaje. Polling y realtime solo resuelven la observación. El test debe definir primero qué email espera y hasta cuándo esperará.
Dos estrategias
| Propiedad | Polling | Realtime |
|---|---|---|
| Mecanismo | Consultar repetidamente | Reaccionar a eventos |
| Complejidad | Intervalo y timeout claros | Conexión/reconexión |
| Carga | Consultas vacías | Menos checks sin cambios |
| Fallo | Timeout pobre | Evento perdido |
| Fallback | Sigue hasta deadline | Conviene reconciliación |
Espera por predicado
- 1
Define el mensaje
Recipient, sender, subject y ventana temporal.
- 2
Define deadline
Nunca loop infinito.
- 3
Observa hasta match
Polling, evento o híbrido pueden compartir el mismo matcher.
- 4
Reporta la capa
Distingue sin mensaje, mensaje incorrecto y canal realtime roto.
Retryable mejor que sleep
Playwright ofrece expect.poll y assertions con retry; Cypress también reintenta queries y assertions hasta timeout. Es mejor esperar una condición que dormir un tiempo fijo.
El sleep desperdicia tiempo cuando la entrega es rápida y falla artificialmente cuando tarda un poco más.
Realtime no acelera SMTP
Un evento puede aparecer enseguida cuando el receptor guarda el mensaje, pero no fuerza al sender ni a una cola externa a entregar antes.
Usa polling o realtime según tu sistema, pero conserva una assertion estable: el mensaje correcto debe aparecer antes de una deadline y el fallo debe decir en qué capa se perdió tiempo.
¿Necesitas un destinatario limpio para QA manual de correo?
Usa MailOnce para inspeccionar mensajes reales de registro, OTP, enlaces mágicos, restablecimiento de contraseña y notificaciones sin convertir tu correo personal en datos de prueba.
Crear correo temporalFuentes y lectura adicional
Documentación primaria de seguridad y ejecución de pruebas usada para fundamentar la guía.
Sigue probando
Continúa con el siguiente límite dentro del mismo problema de pruebas de correo.