Files
sgse-app/GUIA_TESTE_PUSH_NOTIFICATIONS.md
deyvisonwanderley 12db52a8a7 refactor: enhance chat components with type safety and response functionality
- Updated type definitions in ChatWindow and MessageList components for better type safety.
- Improved MessageInput to handle message responses, including a preview feature for replying to messages.
- Enhanced the chat message handling logic to support message references and improve user interaction.
- Refactored notification utility functions to support push notifications and rate limiting for email sending.
- Updated backend schema to accommodate new features related to message responses and notifications.
2025-11-04 20:36:01 -03:00

215 lines
6.2 KiB
Markdown

# 🧪 Guia de Teste - Push Notifications e Melhorias do Chat
## Pré-requisitos
1. ✅ Convex rodando (`cd packages/backend && bun run dev`)
2. ✅ Frontend rodando (`cd apps/web && bun run dev`)
3. ✅ Variáveis de ambiente configuradas (ver `configurar-variaveis-ambiente.md`)
4. ✅ Usuários criados no sistema
## Teste 1: Configuração de Push Notifications
### 1.1 Verificar Service Worker
1. Abra o navegador em `http://localhost:5173`
2. Faça login no sistema
3. Abra DevTools (F12)
4. Vá em **Application** > **Service Workers**
5. ✅ Verifique se `sw.js` está registrado e ativo
### 1.2 Solicitar Permissão de Notificações
1. Abra o chat no sistema
2. O sistema deve solicitar permissão para notificações automaticamente
3. Clique em **Permitir**
4. ✅ Verifique em **Application** > **Notifications** que a permissão está concedida
### 1.3 Verificar Subscription
1. Abra o Console do DevTools
2. Execute:
```javascript
navigator.serviceWorker.ready.then(reg => {
reg.pushManager.getSubscription().then(sub => {
console.log('Subscription:', sub);
});
});
```
3. ✅ Deve retornar um objeto Subscription com endpoint e keys
## Teste 2: Envio e Recebimento de Push Notifications
### 2.1 Teste Básico
1. Abra o sistema em **duas abas diferentes** (ou dois navegadores)
2. Faça login com usuários diferentes em cada aba
3. Na aba 1, abra uma conversa com o usuário da aba 2
4. Envie uma mensagem da aba 1
5. ✅ A aba 2 deve receber uma notificação push (mesmo se estiver em background)
### 2.2 Teste de Menção
1. Na aba 1, envie uma mensagem mencionando o usuário da aba 2 (use @)
2. ✅ A aba 2 deve receber uma notificação push destacada
### 2.3 Teste Offline
1. Feche a aba 2 (ou coloque o navegador em modo offline)
2. Envie uma mensagem da aba 1
3. ✅ O sistema deve enviar um email para o usuário da aba 2 (se estiver offline)
## Teste 3: Edição de Mensagens
### 3.1 Editar Mensagem Própria
1. Envie uma mensagem no chat
2. Clique no ícone ✏️ ao lado da mensagem
3. Edite o conteúdo
4. Pressione **Ctrl+Enter** ou clique em **Salvar**
5. ✅ A mensagem deve ser atualizada com indicador "(editado)"
### 3.2 Tentar Editar Mensagem de Outro Usuário
1. Tente editar uma mensagem de outro usuário
2. ✅ Não deve aparecer o botão de editar (ou deve retornar erro)
## Teste 4: Soft Delete de Mensagens
### 4.1 Deletar Mensagem Própria
1. Envie uma mensagem
2. Clique no ícone 🗑️ ao lado da mensagem
3. Confirme a exclusão
4. ✅ A mensagem deve ser marcada como "Mensagem deletada"
### 4.2 Tentar Deletar Mensagem de Outro Usuário
1. Tente deletar uma mensagem de outro usuário
2. ✅ Não deve aparecer o botão de deletar (ou deve retornar erro)
## Teste 5: Respostas Encadeadas
### 5.1 Responder Mensagem
1. Clique no botão **↪️ Responder** em uma mensagem
2. ✅ Deve aparecer um preview da mensagem original no campo de input
3. Digite sua resposta e envie
4. ✅ A mensagem enviada deve mostrar o preview da mensagem original acima
### 5.2 Visualizar Thread
1. Envie várias respostas para diferentes mensagens
2. ✅ Cada resposta deve mostrar claramente qual mensagem está respondendo
## Teste 6: Preview de Links
### 6.1 Enviar Mensagem com URL
1. Envie uma mensagem contendo uma URL (ex: `https://www.google.com`)
2. Aguarde alguns segundos
3. ✅ Deve aparecer um preview do link abaixo da mensagem com:
- Imagem (se disponível)
- Título
- Descrição
- Site/nome do domínio
### 6.2 Testar Diferentes URLs
Teste com diferentes tipos de URLs:
- ✅ Google: `https://www.google.com`
- ✅ YouTube: `https://www.youtube.com`
- ✅ Artigo de notícia
- ✅ Site sem Open Graph (deve funcionar mesmo assim)
## Teste 7: Busca Full-Text
### 7.1 Busca Básica
1. Envie algumas mensagens com palavras específicas
2. Use a busca no chat (se implementada) ou a query de busca
3. ✅ Deve encontrar mensagens mesmo com acentos diferentes
### 7.2 Busca com Filtros
1. Busque mensagens por:
- ✅ Remetente específico
- ✅ Tipo (texto, arquivo, imagem)
- ✅ Período de data
2. ✅ Os filtros devem funcionar corretamente
## Teste 8: Rate Limiting de Emails
### 8.1 Enviar Múltiplos Emails
1. Configure o sistema para enviar emails
2. Tente enviar mais de 10 emails em 1 minuto
3. ✅ Deve retornar erro de rate limit após o limite
### 8.2 Verificar Delay Exponencial
1. Aguarde o rate limit ser aplicado
2. Tente enviar novamente
3. ✅ Deve haver um delay antes de permitir novo envio
## Checklist de Validação
- [ ] Service Worker registrado e funcionando
- [ ] Permissão de notificações concedida
- [ ] Push notifications sendo recebidas
- [ ] Emails sendo enviados quando usuário offline
- [ ] Edição de mensagens funcionando
- [ ] Soft delete funcionando
- [ ] Respostas encadeadas funcionando
- [ ] Preview de links aparecendo
- [ ] Busca full-text funcionando
- [ ] Rate limiting de emails funcionando
## Problemas Comuns e Soluções
### Push notifications não funcionam
**Problema**: Notificações não aparecem
**Soluções**:
1. Verifique se as VAPID keys estão configuradas no Convex
2. Verifique se `VITE_VAPID_PUBLIC_KEY` está no `.env` do frontend
3. Reinicie o servidor Convex e frontend
4. Limpe o cache do navegador
5. Verifique o console para erros
### Preview de links não aparece
**Problema**: Links não geram preview
**Soluções**:
1. Verifique se a URL é válida (começa com http:// ou https://)
2. Aguarde alguns segundos (processamento é assíncrono)
3. Verifique o console do Convex para erros na extração
4. Alguns sites bloqueiam scrapers - isso é normal
### Edição não funciona
**Problema**: Botão de editar não aparece ou não funciona
**Soluções**:
1. Verifique se a mensagem é sua (só pode editar próprias mensagens)
2. Verifique se a mensagem não foi deletada
3. Verifique o console para erros
4. Certifique-se de que a mutation `editarMensagem` está funcionando
## Relatório de Testes
Após completar os testes, preencha:
- **Data**: ___________
- **Testador**: ___________
- **Ambiente**: [ ] Desenvolvimento [ ] Produção
- **Navegador**: ___________
- **Resultados**: ___________
**Observações**:
_______________________________________
_______________________________________
_______________________________________