Appearance
Autenticacao - Plano de testes
Escopo
Testes do modulo de autenticacao do Contrasync, incluindo login social via OAuth 2.0 (Google, LinkedIn, Microsoft, GitHub), fluxo de primeiro acesso, completar perfil, criacao e selecao de empresa, troca de empresa e gerenciamento de tokens.
Pre-condicoes
- Ambiente configurado com provedores OAuth (Google, LinkedIn, Microsoft, GitHub)
- Contas de teste criadas em cada provedor OAuth
- MSW configurado com handlers de autenticacao para testes locais
- Navegador com popups habilitados
Cenarios de teste
Login social
| # | Cenario | Passos | Resultado esperado | Prioridade |
|---|---|---|---|---|
| 1 | Login com Google - sucesso | 1. Acessar pagina de login 2. Clicar em "Entrar com Google" 3. Popup do Google abre 4. Selecionar conta Google 5. Autorizar acesso | Popup fecha, usuario redirecionado para dashboard (usuario existente) ou fluxo de primeiro acesso (usuario novo) | Alta |
| 2 | Login com LinkedIn - sucesso | 1. Acessar pagina de login 2. Clicar em "Entrar com LinkedIn" 3. Popup do LinkedIn abre 4. Inserir credenciais 5. Autorizar acesso | Popup fecha, usuario autenticado e redirecionado corretamente | Alta |
| 3 | Login com Microsoft - sucesso | 1. Acessar pagina de login 2. Clicar em "Entrar com Microsoft" 3. Popup da Microsoft abre 4. Selecionar conta 5. Autorizar acesso | Popup fecha, usuario autenticado e redirecionado corretamente | Alta |
| 4 | Login com GitHub - sucesso | 1. Acessar pagina de login 2. Clicar em "Entrar com GitHub" 3. Popup do GitHub abre 4. Autorizar aplicacao | Popup fecha, usuario autenticado e redirecionado corretamente | Alta |
| 5 | Login - popup bloqueado pelo navegador | 1. Configurar navegador para bloquear popups 2. Acessar pagina de login 3. Clicar em qualquer botao de login social | Mensagem informando que popups precisam ser habilitados ou fallback adequado | Media |
| 6 | Login - cancelar autorizacao no provedor | 1. Acessar pagina de login 2. Clicar em "Entrar com Google" 3. No popup, clicar em "Cancelar" ou fechar o popup | Usuario permanece na pagina de login, sem erros visuais. Mensagem de feedback opcional | Media |
Fluxo de primeiro acesso
| # | Cenario | Passos | Resultado esperado | Prioridade |
|---|---|---|---|---|
| 7 | Primeiro acesso - fluxo completo | 1. Login com provedor OAuth (usuario novo) 2. Redirecionado para completar perfil 3. Preencher nome e telefone 4. Salvar perfil 5. Redirecionado para selecionar/criar empresa 6. Criar empresa com CNPJ 7. Confirmar | Usuario autenticado com perfil completo e empresa criada, redirecionado ao dashboard | Alta |
| 8 | Completar perfil - campos obrigatorios | 1. Na tela de completar perfil 2. Deixar campo "Nome" vazio 3. Clicar em "Salvar" | Validacao exibida indicando que nome e obrigatorio. Formulario nao e submetido | Alta |
| 9 | Completar perfil - telefone com mascara | 1. Na tela de completar perfil 2. Digitar telefone "11999998888" | Campo formata automaticamente para "(11) 99999-8888" | Media |
| 10 | Completar perfil - CPF opcional valido | 1. Na tela de completar perfil 2. Preencher nome e telefone 3. Preencher CPF "123.456.789-09" (valido) 4. Salvar | Perfil salvo com sucesso incluindo CPF | Media |
| 11 | Completar perfil - CPF invalido | 1. Na tela de completar perfil 2. Preencher CPF "111.111.111-11" (invalido) 3. Clicar em "Salvar" | Validacao exibida indicando CPF invalido | Media |
Criacao de empresa
| # | Cenario | Passos | Resultado esperado | Prioridade |
|---|---|---|---|---|
| 12 | Criar empresa - com representante legal | 1. Na tela de criar empresa 2. Preencher CNPJ valido 3. Preencher dados da empresa 4. Marcar checkbox "Sou representante legal" 5. Confirmar | Empresa criada com usuario marcado como representante legal | Alta |
| 13 | Criar empresa - sem representante legal | 1. Na tela de criar empresa 2. Preencher CNPJ valido 3. Preencher dados da empresa 4. Deixar checkbox "Sou representante legal" desmarcado 5. Confirmar | Empresa criada com usuario sem flag de representante legal | Alta |
| 14 | Criar empresa - CNPJ invalido | 1. Na tela de criar empresa 2. Preencher CNPJ "11.111.111/1111-11" (invalido) 3. Tentar confirmar | Validacao exibida indicando CNPJ invalido. Formulario nao e submetido | Alta |
| 15 | Criar empresa - CNPJ com mascara | 1. Na tela de criar empresa 2. Digitar CNPJ "12345678000199" | Campo formata automaticamente para "12.345.678/0001-99" | Media |
Selecao e troca de empresa
| # | Cenario | Passos | Resultado esperado | Prioridade |
|---|---|---|---|---|
| 16 | Selecionar empresa - lista de empresas | 1. Login com usuario que possui multiplas empresas 2. Na tela de selecao de empresa | Lista exibe todas as empresas do usuario com nome e CNPJ | Alta |
| 17 | Selecionar empresa - sem chamada API | 1. Na tela de selecao de empresa 2. Clicar em uma empresa 3. Observar aba de rede do navegador | Selecao acontece localmente sem chamada ao backend. Redirecionamento para dashboard | Alta |
| 18 | Trocar empresa - via menu | 1. Estar logado com empresa A selecionada 2. Acessar menu de troca de empresa 3. Selecionar empresa B | Contexto muda para empresa B. Dashboard atualiza com dados da empresa B | Alta |
Gerenciamento de tokens
| # | Cenario | Passos | Resultado esperado | Prioridade |
|---|---|---|---|---|
| 19 | Token expirado - refresh automatico | 1. Estar logado 2. Aguardar token expirar 3. Realizar qualquer acao na plataforma | Token e renovado automaticamente. Acao do usuario e completada sem interrupcao | Alta |
| 20 | Token expirado - refresh falha | 1. Estar logado 2. Simular falha no refresh token (MSW retorna 401) 3. Realizar qualquer acao | Usuario e redirecionado para tela de login com mensagem informativa | Alta |
Cenarios negativos
| # | Cenario | Passos | Resultado esperado |
|---|---|---|---|
| 1 | Codigo OAuth invalido | Simular retorno com codigo invalido do provedor OAuth | Mensagem de erro exibida. Usuario permanece na tela de login |
| 2 | Token expirado no callback | Simular demora no callback apos autorizacao OAuth | Mensagem de erro informando que a sessao expirou. Opcao de tentar novamente |
| 3 | Falha de rede durante login | Desabilitar conexao de rede durante processo de login | Mensagem de erro de conexao. Opcao de tentar novamente |
| 4 | API retorna erro 500 no login | MSW retorna status 500 no endpoint de login | Mensagem generica de erro. Usuario pode tentar novamente |
| 5 | Submissao dupla de formulario | Clicar rapidamente duas vezes no botao de salvar perfil | Apenas uma requisicao e enviada. Botao desabilitado apos primeiro clique |
Casos extremos
| # | Cenario | Resultado esperado |
|---|---|---|
| 1 | Usuario sem nenhuma empresa associada | Apos completar perfil, tela de criar empresa e exibida diretamente |
| 2 | Usuario com 10+ empresas | Lista de selecao exibe todas as empresas, com scroll se necessario |
| 3 | Nome com caracteres especiais (acentos, cedilha) | Nome salvo corretamente com todos os caracteres especiais |
| 4 | Telefone com formato internacional | Sistema aceita ou informa formato esperado |
| 5 | Login simultaneo em duas abas | Ambas as abas refletem o estado de login corretamente |
| 6 | Fechar navegador durante fluxo de primeiro acesso e reabrir | Usuario retorna ao ponto correto do fluxo ou reinicia do login |
Criterios de aceite
- [ ] Login funciona com todos os 4 provedores OAuth (Google, LinkedIn, Microsoft, GitHub)
- [ ] Popup abre e fecha corretamente em todos os navegadores suportados
- [ ] Fluxo de primeiro acesso completo funciona sem erros
- [ ] Validacoes de CPF e CNPJ rejeitam valores invalidos
- [ ] Mascaras de telefone e CNPJ formatam corretamente
- [ ] Selecao de empresa acontece localmente sem chamada API
- [ ] Troca de empresa atualiza todo o contexto da aplicacao
- [ ] Token e renovado automaticamente quando expira
- [ ] Erros de autenticacao exibem mensagens claras ao usuario
- [ ] Nenhum dado sensivel exposto no console ou rede