Skip to content
Commit db275af7 authored by Igor Matheus's avatar Igor Matheus
Browse files

MG-4 (servidor): Auth com perfil por gatilho, e duas garantias que o Firebase não dá

Perfil criado por gatilho do Auth, não pelo app: se dependesse do app, uma falha
de rede logo depois do cadastro deixaria a pessoa sem nome no ranking. Conta sem
displayName cai para o trecho antes do @ — gravar vazio deixaria uma linha de
ranking que ninguém identifica.

Sondei o Auth em vez de assumir, e o resultado muda o que falta fazer

- 🔴

 O Auth DISTINGUE senha errada de e-mail inexistente
  (auth/wrong-password vs auth/user-not-found). Isso quebra AC-2-02, que existe
  para o login não virar oráculo de enumeração: com respostas diferentes dá para
  descobrir quem tem conta testando e-mails. A correção é configuração (email
  enumeration protection) e NÃO é verificável em emulador — o emulador não
  implementa. Virou a primeira coisa da lista de MG-8 e pergunta aberta no PRD.
- O mínimo de senha do Auth é 6, não 8. O app valida 8 antes de chamar, mas quem
  falar direto com a API cria com 6. Fechar exige Identity Platform ou blocking
  function — upgrade de plano, decisão do dono. Registrado com o número real.
- Rate limit não é verificável aqui: o emulador não aplica. AC-2-03/AC-2-04
  passam a depender do comportamento em produção, para ser medido.

Dois defeitos meus, nos testes

- Teste que dependia de outro teste: MG-4-04 usava a conta de MG-4-01 e passava
  só com a suíte inteira, na ordem. Rodado isolado passava por engano — e
  isolado é justamente como se investiga falha. Virou auto-contido.
- Asserção por mensagem em inglês (/already exists/ contra "already in use").
  Trocada pelo código do erro: texto do fornecedor muda sem avisar, código não.

FE-1 a FE-3 e BE-3 seguem abertas: trocar o login para o SDK mexe na camada de
dados do app (assunto de MG-7) e o e-mail de recuperação exige o projeto real.
Marcar agora seria dizer que o participante já entra pelo Firebase.

Premissa registrada: AC-4 volta do cancelamento, porque o Auth dá recuperação de
senha de graça. Se a decisão for o contrário, é texto de tela e estado de story.

Co-Authored-By: default avatarClaude Opus 5 (1M context) <noreply@anthropic.com>
parent dd4ed868
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment