TDD — Signup com Google (RegisterPage)
Status
Implementado
Contexto
Cadastro via Google OAuth no RegisterPage. Usuário informa nome e igreja, faz login com Google e a conta pendente é criada via USER_SELF_REGISTER.
Interface de Usuário (UI)
Seção/aba Signup com Google na RegisterPage.
Componentes e organização:
- Campo Nome — obrigatório; usado no payload USER_SELF_REGISTER
- Dropdown Igreja — lista de
publicChurchesHttp; obrigatório - Botão "Continuar com Google" — abre popup OAuth; loading durante fluxo
Observação: Após o popup, o fluxo é automático; em caso de sucesso, redireciona para Home. Erros exibidos em SnackBar.
Contratos
Firebase Auth
signInWithPopup(GoogleAuthProvider)— autenticação OAuth
userGatewayHttp (POST)
- Action:
USER_SELF_REGISTER - Payload:
{ name, unitId?, ministryId? }(após resolver tenant por domínio) - Cria UserAccount com status PENDING vinculado ao usuário autenticado
Fluxo
- Usuário preenche nome, seleciona igreja
- Clica em "Continuar com Google"
- Popup Google OAuth → Firebase autentica
- Frontend:
SignInWithGoogleUseCase→ login + USER_SELF_REGISTER - Backend cria conta pendente (ministryId, unitId do domínio)
- Redireciona para Home com perfil carregado
Código de referência
frontend/lib/presentation/pages/login/register_page.dart→ fluxo Googlefrontend/lib/application/use_cases/sign_in_with_google.dartbackend/functions/src/application/use-cases/process-user-action.ts→ USER_SELF_REGISTER