Prueba el inicio de sesión sin contraseña sin el caos de la bandeja de entrada
El inicio de sesión sin contraseña parece sencillo en una demostración. Un usuario introduce un correo electrónico, recibe un enlace mágico y accede.
En staging, este flujo se rompe. Los enlaces llegan a bandejas de entrada compartidas o a alias de correo antiguos. Las pruebas se vuelven un caos.
Debes tratar la autenticación sin contraseña como un sistema único. Es necesario probar el cliente de JavaScript, el backend de Node.js, el envío de correos electrónicos y la sesión final.
Si ignoras la bandeja de entrada, tus pruebas de API podrían pasar mientras la experiencia del usuario falla.
Los fallos comunes incluyen:
- El backend envía dos enlaces tras un reintento.
- El correo apunta al host del entorno incorrecto.
- Un enlace antiguo funciona más tiempo de lo debido.
- El frontend marca al usuario como conectado antes de que se establezca la cookie.
Utiliza una bandeja de entrada aislada para cada ejecución de prueba. Esto mantiene tus datos limpios y agiliza la depuración. Si tres pruebas utilizan una misma bandeja de entrada, no podrás encontrar el error.
Sigue este flujo de trabajo:
- Activa el inicio de sesión desde tu UI o mediante una prueba de extremo a extremo (end-to-end).
- Deja que Node.js envíe el enlace a través de tu ruta de staging.
- Captura el mensaje en una bandeja de entrada nueva y aislada.
- Abre el enlace más reciente en la misma sesión del navegador.
- Verifica el estado de autenticación.
Una buena prueba hace más que comprobar si llegó un correo. Verifica estos pasos en orden:
- La solicitud de inicio de sesión devuelve una respuesta de éxito neutra.
- Existe exactamente un enlace mágico nuevo.
- El host del enlace coincide con tu dominio de staging.
- El token inicia una sesión válida.
- Reutilizar el mismo enlace falla.
- La aplicación actualiza la UI sin necesidad de una actualización manual.
En el backend, adjunta un ID de correlación a tus logs. Esto te ayudará a rastrear una solicitud desde su creación hasta la sesión final.
No sustituyas todas tus pruebas por pruebas basadas en correo electrónico. Utiliza pruebas unitarias rápidas para la lógica y emplea esta ruta de bandeja de entrada para tu suite de staging.
Utiliza esta lista de verificación antes de realizar el despliegue:
- Una solicitud de inicio de sesión crea solo un enlace activo.
- El correo más reciente es fácil de analizar en staging.
- El enlace inicia la sesión del usuario en el host correcto.
- El enlace no se puede usar dos veces.
- Cerrar la sesión e iniciarla de nuevo genera un nuevo token limpio.
