Teste o Login Sem Senha Sem o Caos da Caixa de Entrada
O login sem senha parece fácil em uma demonstração. Um usuário insere um e-mail. Um link mágico chega. A sessão começa.
Em staging, esse fluxo fica bagunçado. Os links caem em caixas de entrada compartilhadas ou aliases antigos. Isso cria ruído.
Você deve tratar a autenticação sem senha como um sistema completo. Você precisa testar o cliente JavaScript, o backend Node.js, o envio de e-mail e a sessão. Se você ignorar a caixa de entrada, poderá lançar um fluxo quebrado, mesmo que seus testes de API passem.
Falhas comuns incluem:
- O backend envia dois links após uma tentativa de reenvio.
- O e-mail aponta para o host errado.
- Um link antigo funciona por mais tempo do que deveria.
- O frontend marca o usuário como logado antes de o cookie ser definido.
Use uma caixa de entrada isolada para cada execução de teste. Isso evita que dados de teste vazem para as caixas de entrada da equipe. Use serviços de e-mail descartáveis para staging para manter as execuções separadas.
O isolamento facilita o debugging. Se um teste falhar, você deve ver apenas uma caixa de entrada e uma jornada de usuário. Você deve saber exatamente qual mensagem pertence a qual build.
Um bom teste verifica estas etapas em ordem:
- A solicitação de login é bem-sucedida sem revelar se uma conta existe.
- Exatamente um novo link mágico chega.
- O host do link corresponde ao seu domínio de staging.
- O link inicia uma sessão válida.
- Reutilizar o mesmo link falha.
- O app atualiza a navegação sem um refresh manual.
No lado do Node.js, anexe um ID de correlação aos seus logs. Use-o desde a requisição até o envio do e-mail e a sessão final. Isso ajuda a encontrar bugs quando os e-mails estão lentos ou duplicados.
Não substitua todos os seus testes por testes de e-mail. Use testes unitários rápidos para a lógica de tokens e regras de sessão. Use o caminho do e-mail para provar que a experiência real do usuário funciona.
Checklist antes de fazer o deploy:
- Uma única solicitação de login cria apenas um link ativo.
- O e-mail mais recente é fácil de analisar em staging.
- O link funciona no host correto.
- O link não pode ser reutilizado.
- Fazer logout e login novamente cria um novo token limpo.
