Skip to content

Plano de Testes E2E — Carteira Funcional

Sessão de testes iniciada em 2026-06-30. Ambiente local (backend jar + infra Docker + emulador + backoffice web). Marcar cada caso: ✅ passou · ❌ falhou (abrir AJxx) · ⚠️ passou com ressalva · ⬜ não executado.

Ambiente & credenciais

ItemValor
Backofficehttp://localhost:8080 · superadmin@aquila.local / DevSuperAdmin!2026
App mobileemulador Medium_Phone_API_35 · profissional CPF 19119119100
OTPchega por e-mail no Mailpit http://localhost:8025
Org de testeConselho Dev (selecionar no switcher do backoffice)
Dados atuais8 solicitações: 000001 ISSUED, 000002 IN_ANALYSIS, 000003–000008 PENDING

Gaps conhecidos (esperados — não tratar como bug novo)

  • AJ04 — app não mostra nome/identidade do usuário (home só "Bem-vindo!").
  • AJ05person_biographic vazia → carteira emitida sai sem nome.
  • AJ06 — endpoints self-service ainda filtram por org, não por personId (F35).

Bloco A — Autenticação (mobile)

IDCasoPassosEsperadoSt
A1Login OTP felizCPF 19119119100 → Continuar → pegar código no Mailpit → EntrarCai na home "Bem-vindo!"
A2OTP inválido (AJ02)Na tela de código, digitar 6 dígitos errados → EntrarMensagem amigável "Código inválido." (não "Unexpected Error")
A3Reenviar códigoAguardar o contador e tocar "Reenviar código" → usar o novoNovo e-mail no Mailpit; login com o novo código funciona
A4LogoutHome → ícone sair (topo dir.) → SairVolta à tela de CPF

Bloco B — Nova solicitação / onboarding (mobile)

IDCasoPassosEsperadoSt
B1Iniciar novo cadastroHome → "Iniciar novo cadastro" → seguir o fluxo (serviço, documentos, foto, termos)Solicitação criada; protocolo novo 2026-CONSELHO-DEV-0000NN
B2Upload de documentosNo fluxo, anexar documento(s)Documento aceito (PDF/JPG/PNG ≤10MB)
B3Captura de fotoEtapa de foto biométricaFoto capturada e enviada
B4Aparece no backofficeApós submeter, ir ao backoffice → SolicitaçõesA nova solicitação aparece como PENDING

Bloco C — Esteira do analista (backoffice)

IDCasoPassosEsperadoSt
C1Listar (AJ03)Backoffice → trocar org p/ Conselho Dev → SolicitaçõesLista as solicitações da org (8+)
C2FiltrarUsar filtros (status PENDING, busca por protocolo/CPF)Lista filtra corretamente
C3AssumirNuma PENDING → "Assumir" (confirmar)Status vai p/ IN_ANALYSIS; analista atribuído
C4DetalheAbrir o detalhe da solicitaçãoMostra dados, documentos (link assinado) e timeline
C5Solicitar correçãoNo detalhe → "Solicitar correção" (motivo)Status volta p/ PENDING/correção; evento na timeline
C6RejeitarEm outra solicitação → Rejeitar (motivo ≥20 chars + categoria)Status REJECTED; validação de motivo funciona
C7AprovarEm uma IN_ANALYSIS → AprovarStatus APPROVED; habilita emissão

Bloco D — Emissão da carteira (backoffice)

IDCasoPassosEsperadoSt
D1EmitirNuma APPROVED → "Emitir carteira" (UB06)Carteira gerada; status ISSUED; abre PDF
D2Conteúdo do PDFAbrir o PDF da carteiraLogo/cores do Conselho, QR Code, dados. ⚠️ nome vazio (AJ05)

Bloco E — Carteira & acompanhamento (mobile)

IDCasoPassosEsperadoSt
E1Minhas solicitaçõesHome → "Minhas solicitações"Lista com status atualizado (reflete C/D)
E2Detalhe/acompanhamentoAbrir uma solicitaçãoMostra status e histórico
E3Minha carteiraHome → "Minha carteira"Exibe a carteira emitida (000001) com QR

Bloco F — Validação pública do QR (sem login)

IDCasoPassosEsperadoSt
F1Validar carteira ativaLer o qr_token da carteira ISSUED → GET /api/public/v1/cards/validate/{token}200 com nome*, registro, categoria, Conselho, situação ATIVA
F2Token inválidoValidar token inexistente404 (sem vazar dados)

Bloco G — Gestão (backoffice)

IDCasoPassosEsperadoSt
G1Carteiras (UB07)Menu → CarteirasLista carteiras da org; filtros
G2Cancelar / ReemitirNuma carteira ACTIVE → Cancelar; depois ReemitirCancela (CANCELLED) / reemite (nova ACTIVE)
G3Export CSVCarteiras → ExportarCSV baixa sem CPF/foto (LGPD)
G4Profissionais (UB08)Menu → ProfissionaisLista profissionais; perfil com carteiras/solicitações
G5Relatórios (UB09)Menu → RelatóriosTotais + exports (gráficos são placeholder/RPT01)
G6Dashboard (UB02)Menu → DashboardKPIs refletem os dados reais (não mais 0)

Bloco H — Negativos / segurança / multi-tenant

IDCasoPassosEsperadoSt
H1Isolamento de orgBackoffice → trocar p/ CREA-PR/CREA-SP → SolicitaçõesNÃO mostra dados da Conselho Dev (vazio ou só os da org)
H2Sem org → guardaVisão da Plataforma (sem org) → tentar rota /carteira/...Redireciona p/ seleção de org
H3API sem tokenGET /api/v1/... protegido sem Bearer401 (F27 ligado)
H4API token de outra org(avançado) usar token e tentar dados de outra org403/empty — RLS bloqueia

Ordem sugerida (narrativa E2E)

A1 → B1..B4 → C3/C4 → C7 → D1/D2 → E1/E3 → F1 = um ciclo completo "profissional cadastra → analista aprova → emite → profissional vê a carteira → QR valida". Depois varrer C5/C6 (correção/rejeição), G* (gestão) e H* (negativos).

Plataforma Aquila — Carteira Funcional