Testez la connexion sans mot de passe sans chaos de boîte de réception

La connexion sans mot de passe semble facile lors d'une démo. Un utilisateur saisit un e-mail, reçoit un lien magique et se connecte.

En staging, ce flux échoue. Les liens arrivent dans des boîtes de réception partagées ou de vieux alias d'e-mails. Les tests deviennent un véritable casse-tête.

Vous devez traiter l'authentification sans mot de passe comme un système unique. Vous devez tester le client JavaScript, le backend Node.js, la livraison d'e-mails et la session finale.

Si vous ignorez la boîte de réception, vos tests d'API peuvent réussir alors que l'expérience utilisateur échoue.

Les échecs courants incluent :

  • Le backend envoie deux liens après une tentative de réessai.
  • L'e-mail pointe vers l'hôte de l'environnement erroné.
  • Un ancien lien fonctionne plus longtemps qu'il ne le devrait.
  • Le frontend marque l'utilisateur comme connecté avant que le cookie ne soit défini.

Utilisez une boîte de réception isolée pour chaque exécution de test. Cela permet de garder vos données propres et votre débogage rapide. Si trois tests utilisent une seule boîte de réception, vous ne pourrez pas trouver l'erreur.

Suivez ce flux de travail :

  • Déclenchez la connexion depuis votre interface utilisateur ou un test de bout en bout.
  • Laissez Node.js envoyer le lien via votre chemin de staging.
  • Capturez le message dans une boîte de réception fraîche et isolée.
  • Ouvrez le lien le plus récent dans la même session de navigateur.
  • Vérifiez l'état d'authentification.

Un bon test fait plus que vérifier si un e-mail est arrivé. Vérifiez ces étapes dans l'ordre :

  • La requête de connexion renvoie une réponse de succès neutre.
  • Un seul lien magique récent existe.
  • L'hôte du lien correspond à votre domaine de staging.
  • Le jeton démarre une session valide.
  • La réutilisation du même lien échoue.
  • L'application met à jour l'interface utilisateur sans rafraîchissement manuel.

Sur le backend, attachez un ID de corrélation à vos logs. Cela vous aide à suivre une requête de sa création à la session finale.

Ne remplacez pas tous vos tests par des tests basés sur l'e-mail. Utilisez des tests unitaires rapides pour la logique et utilisez ce chemin de boîte de réception pour votre suite de staging.

Utilisez cette checklist avant de déployer :

  • Une requête de connexion ne crée qu'un seul lien actif.
  • L'e-mail le plus récent est facile à analyser en staging.
  • Le lien connecte l'utilisateur sur le bon hôte.
  • Le lien ne peut pas être utilisé deux fois.
  • La déconnexion et la reconnexion produisent un nouveau jeton propre.

Source: https://dev.to/ryanlee91/how-to-test-passwordless-login-emails-in-javascript-without-inbox-chaos-56d0