Appearance
Notificacoes - Plano de testes
Escopo
Testes do modulo de notificacoes in-app, incluindo badge de contagem de nao lidas, listagem com escopos (empresa, contrato, pessoal, papel, acao), marcacao como lida (individual e todas), links de acao para navegacao e atualizacao periodica.
Pre-condicoes
- Usuario autenticado com empresa selecionada
- Notificacoes de teste geradas (diferentes escopos e tipos)
- MSW configurado com handlers de notificacoes
- Pelo menos 5 notificacoes nao lidas para o usuario
Cenarios de teste
Badge de contagem
| # | Cenario | Passos | Resultado esperado | Prioridade |
|---|---|---|---|---|
| 1 | Exibir contagem de nao lidas | 1. Acessar qualquer pagina da aplicacao 2. Verificar icone de sino na barra de navegacao | Badge exibe numero de notificacoes nao lidas | Alta |
| 2 | Atualizar contagem apos leitura | 1. Badge exibe "5" nao lidas 2. Abrir notificacoes e marcar 1 como lida | Badge atualiza para "4" | Alta |
| 3 | Badge desaparece com zero nao lidas | 1. Marcar todas as notificacoes como lidas | Badge numerico desaparece ou exibe "0". Icone de sino permanece | Alta |
| 4 | Badge com nova notificacao | 1. Badge exibe "3" 2. Nova notificacao chega (via polling/refresh) | Badge atualiza para "4" | Media |
Listagem de notificacoes
| # | Cenario | Passos | Resultado esperado | Prioridade |
|---|---|---|---|---|
| 5 | Abrir lista de notificacoes | 1. Clicar no icone de sino | Painel/dropdown abre com lista de notificacoes ordenadas por data (mais recente primeiro) | Alta |
| 6 | Notificacoes com escopo "empresa" | 1. Abrir lista de notificacoes 2. Verificar notificacoes de empresa | Notificacoes de empresa exibidas com icone/label identificador | Alta |
| 7 | Notificacoes com escopo "contrato" | 1. Abrir lista 2. Verificar notificacoes de contrato | Notificacoes de contrato exibem referencia ao contrato relacionado | Alta |
| 8 | Notificacoes com escopo "pessoal" | 1. Abrir lista 2. Verificar notificacoes pessoais | Notificacoes pessoais exibidas com contexto adequado | Media |
| 9 | Notificacoes com escopo "papel" (role) | 1. Abrir lista 2. Verificar notificacoes de papel | Notificacoes relacionadas ao papel do usuario (tomador/prestador) exibidas | Media |
| 10 | Notificacoes com escopo "acao" | 1. Abrir lista 2. Verificar notificacoes de acao | Notificacoes que requerem acao do usuario exibidas com destaque | Media |
| 11 | Diferenciar notificacoes lidas e nao lidas | 1. Abrir lista com notificacoes lidas e nao lidas | Notificacoes nao lidas tem destaque visual (fundo diferente, ponto indicador, etc.) | Alta |
Marcar como lida
| # | Cenario | Passos | Resultado esperado | Prioridade |
|---|---|---|---|---|
| 12 | Marcar individual como lida | 1. Abrir lista de notificacoes 2. Clicar em "Marcar como lida" em uma notificacao especifica | Notificacao perde destaque visual de nao lida. Badge atualizado | Alta |
| 13 | Marcar todas como lidas | 1. Abrir lista de notificacoes 2. Clicar em "Marcar todas como lidas" | Todas as notificacoes perdem destaque. Badge zerado | Alta |
| 14 | Marcar como lida ao clicar | 1. Clicar em uma notificacao nao lida (no corpo da notificacao) | Notificacao marcada como lida automaticamente ao interagir | Media |
Links de acao e navegacao
| # | Cenario | Passos | Resultado esperado | Prioridade |
|---|---|---|---|---|
| 15 | Navegar via link de acao | 1. Abrir lista de notificacoes 2. Clicar em notificacao com link de acao (ex: "Ver contrato") | Usuario redirecionado para a pagina relacionada (ex: pagina do contrato mencionado) | Alta |
| 16 | Link de acao para contrato | 1. Notificacao sobre contrato 2. Clicar no link | Redirecionado para o contrato especifico | Alta |
| 17 | Link de acao para compliance | 1. Notificacao sobre compliance 2. Clicar no link | Redirecionado para o compliance especifico | Media |
Atualizacao periodica
| # | Cenario | Passos | Resultado esperado | Prioridade |
|---|---|---|---|---|
| 18 | Polling de novas notificacoes | 1. Manter aplicacao aberta 2. Gerar nova notificacao no backend 3. Aguardar ciclo de polling | Badge atualizado com nova contagem sem recarregar a pagina | Media |
| 19 | Refresh manual | 1. Abrir lista de notificacoes 2. Fechar e reabrir (ou clicar em refresh) | Lista atualizada com notificacoes mais recentes | Media |
Cenarios negativos
| # | Cenario | Passos | Resultado esperado |
|---|---|---|---|
| 1 | API fora do ar ao carregar notificacoes | Simular erro 500 ao buscar notificacoes | Badge exibe ultimo valor conhecido ou "!" indicando erro. Lista exibe mensagem de erro |
| 2 | Marcar como lida com falha na API | Clicar em "Marcar como lida" com API falhando | Mensagem de erro. Notificacao permanece como nao lida |
| 3 | Link de acao aponta para recurso excluido | Clicar em link de notificacao de contrato que foi excluido | Pagina de erro 404 ou mensagem informando que o recurso nao existe mais |
| 4 | Marcar todas como lidas com lista vazia | Clicar em "Marcar todas como lidas" sem notificacoes | Botao desabilitado ou nenhuma acao realizada |
Casos extremos
| # | Cenario | Resultado esperado |
|---|---|---|
| 1 | Zero notificacoes | Lista exibe estado vazio com mensagem "Nenhuma notificacao" |
| 2 | 100+ notificacoes | Lista carrega com scroll ou paginacao. Performance adequada |
| 3 | Notificacao com texto muito longo | Texto truncado com opcao de ver mais ou tooltip |
| 4 | Badge com contagem > 99 | Badge exibe "99+" ou numero completo |
| 5 | Multiplas notificacoes chegando simultaneamente | Badge e lista atualizam corretamente com todas |
| 6 | Trocar de empresa com notificacoes | Notificacoes atualizam para refletir a empresa selecionada |
Criterios de aceite
- [ ] Badge de contagem exibe numero correto de notificacoes nao lidas
- [ ] Badge atualiza em tempo real apos marcar como lida
- [ ] Lista de notificacoes exibe todas com ordenacao por data
- [ ] Todos os escopos de notificacao (empresa, contrato, pessoal, papel, acao) sao exibidos
- [ ] Notificacoes nao lidas tem destaque visual
- [ ] Marcacao individual como lida funciona
- [ ] Marcacao de todas como lidas funciona
- [ ] Links de acao redirecionam para pagina correta
- [ ] Polling ou refresh atualiza notificacoes periodicamente
- [ ] Estados vazios e de erro sao tratados adequadamente