Testowanie logowania bezhasłowego bez chaosu w skrzynce odbiorczej

Logowanie bezhasłowe wygląda na proste w wersji demo. Użytkownik wpisuje adres e-mail. Przychodzi magiczny link. Sesja zostaje rozpoczęta.

W środowisku stagingowym ten proces staje się chaotyczny. Linki trafiają do współdzielonych skrzynek lub starych aliasów. Powoduje to szum informacyjny.

Musisz traktować uwierzytelnianie bezhasłowe jako jeden pełny system. Należy przetestować klienta JavaScript, backend w Node.js, dostarczanie e-maili oraz sesję. Jeśli pominiesz skrzynkę odbiorczą, możesz wypuścić wadliwy proces, nawet jeśli testy API przejdą pomyślnie.

Typowe błędy obejmują:

  • Backend wysyła dwa linki po ponownej próbie.
  • E-mail kieruje do niewłaściwego hosta.
  • Stary link działa dłużej, niż powinien.
  • Frontend oznacza użytkownika jako zalogowanego, zanim zostanie ustawiony plik cookie.

Do każdego przebiegu testów używaj odizolowanej skrzynki odbiorczej. Zapobiega to wyciekowi danych testowych do skrzynek zespołowych. W środowisku stagingowym korzystaj z usług tymczasowych adresów e-mail (disposable email services), aby zachować separację przebiegów.

Izolacja ułatwia debugowanie. Jeśli test zakończy się niepowodzeniem, powinieneś widzieć jedną skrzynkę i jedną ścieżkę użytkownika. Powinieneś dokładnie wiedzieć, która wiadomość należy do którego buildu.

Dobry test sprawdza te kroki w odpowiedniej kolejności:

  • Żądanie logowania kończy się sukcesem, nie ujawniając, czy konto istnieje.
  • Przychodzi dokładnie jeden świeży magiczny link.
  • Host linku zgadza się z Twoją domeną stagingową.
  • Link rozpoczyna poprawną sesję.
  • Ponowne użycie tego samego linku kończy się niepowodzeniem.
  • Aplikacja aktualizuje nawigację bez konieczności ręcznego odświeżania.

Po stronie Node.js dołącz identyfikator korelacji (correlation ID) do logów. Używaj go od momentu żądania, przez wysyłkę e-maila, aż po finalną sesję. Pomaga to znaleźć błędy w sytuacjach, gdy e-maile przychodzą z opóźnieniem lub są duplikowane.

Nie zastępuj wszystkich testów testami e-mailowymi. Używaj szybkich testów jednostkowych do logiki tokenów i reguł sesji. Ścieżkę e-mailową wykorzystaj do potwierdzenia, że rzeczywiste doświadczenie użytkownika (user experience) działa poprawnie.

Lista kontrolna przed wdrożeniem:

  • Jedno żądanie logowania tworzy tylko jeden aktywny link.
  • Najnowszy e-mail jest łatwy do sparsowania w środowisku stagingowym.
  • Link działa na właściwym hoście.
  • Linku nie można użyć ponownie.
  • Wylogowanie i ponowne zalogowanie tworzy czysty, nowy token.

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