Skip to main content

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

  1. Usuário preenche nome, seleciona igreja
  2. Clica em "Continuar com Google"
  3. Popup Google OAuth → Firebase autentica
  4. Frontend: SignInWithGoogleUseCase → login + USER_SELF_REGISTER
  5. Backend cria conta pendente (ministryId, unitId do domínio)
  6. Redireciona para Home com perfil carregado

Código de referência

  • frontend/lib/presentation/pages/login/register_page.dart → fluxo Google
  • frontend/lib/application/use_cases/sign_in_with_google.dart
  • backend/functions/src/application/use-cases/process-user-action.ts → USER_SELF_REGISTER