- 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.
6.2 KiB
6.2 KiB
🧪 Guia de Teste - Push Notifications e Melhorias do Chat
Pré-requisitos
- ✅ Convex rodando (
cd packages/backend && bun run dev) - ✅ Frontend rodando (
cd apps/web && bun run dev) - ✅ Variáveis de ambiente configuradas (ver
configurar-variaveis-ambiente.md) - ✅ Usuários criados no sistema
Teste 1: Configuração de Push Notifications
1.1 Verificar Service Worker
- Abra o navegador em
http://localhost:5173 - Faça login no sistema
- Abra DevTools (F12)
- Vá em Application > Service Workers
- ✅ Verifique se
sw.jsestá registrado e ativo
1.2 Solicitar Permissão de Notificações
- Abra o chat no sistema
- O sistema deve solicitar permissão para notificações automaticamente
- Clique em Permitir
- ✅ Verifique em Application > Notifications que a permissão está concedida
1.3 Verificar Subscription
- Abra o Console do DevTools
- Execute:
navigator.serviceWorker.ready.then(reg => {
reg.pushManager.getSubscription().then(sub => {
console.log('Subscription:', sub);
});
});
- ✅ Deve retornar um objeto Subscription com endpoint e keys
Teste 2: Envio e Recebimento de Push Notifications
2.1 Teste Básico
- Abra o sistema em duas abas diferentes (ou dois navegadores)
- Faça login com usuários diferentes em cada aba
- Na aba 1, abra uma conversa com o usuário da aba 2
- Envie uma mensagem da aba 1
- ✅ A aba 2 deve receber uma notificação push (mesmo se estiver em background)
2.2 Teste de Menção
- Na aba 1, envie uma mensagem mencionando o usuário da aba 2 (use @)
- ✅ A aba 2 deve receber uma notificação push destacada
2.3 Teste Offline
- Feche a aba 2 (ou coloque o navegador em modo offline)
- Envie uma mensagem da aba 1
- ✅ 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
- Envie uma mensagem no chat
- Clique no ícone ✏️ ao lado da mensagem
- Edite o conteúdo
- Pressione Ctrl+Enter ou clique em Salvar
- ✅ A mensagem deve ser atualizada com indicador "(editado)"
3.2 Tentar Editar Mensagem de Outro Usuário
- Tente editar uma mensagem de outro usuário
- ✅ 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
- Envie uma mensagem
- Clique no ícone 🗑️ ao lado da mensagem
- Confirme a exclusão
- ✅ A mensagem deve ser marcada como "Mensagem deletada"
4.2 Tentar Deletar Mensagem de Outro Usuário
- Tente deletar uma mensagem de outro usuário
- ✅ Não deve aparecer o botão de deletar (ou deve retornar erro)
Teste 5: Respostas Encadeadas
5.1 Responder Mensagem
- Clique no botão ↪️ Responder em uma mensagem
- ✅ Deve aparecer um preview da mensagem original no campo de input
- Digite sua resposta e envie
- ✅ A mensagem enviada deve mostrar o preview da mensagem original acima
5.2 Visualizar Thread
- Envie várias respostas para diferentes mensagens
- ✅ Cada resposta deve mostrar claramente qual mensagem está respondendo
Teste 6: Preview de Links
6.1 Enviar Mensagem com URL
- Envie uma mensagem contendo uma URL (ex:
https://www.google.com) - Aguarde alguns segundos
- ✅ 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
- Envie algumas mensagens com palavras específicas
- Use a busca no chat (se implementada) ou a query de busca
- ✅ Deve encontrar mensagens mesmo com acentos diferentes
7.2 Busca com Filtros
- Busque mensagens por:
- ✅ Remetente específico
- ✅ Tipo (texto, arquivo, imagem)
- ✅ Período de data
- ✅ Os filtros devem funcionar corretamente
Teste 8: Rate Limiting de Emails
8.1 Enviar Múltiplos Emails
- Configure o sistema para enviar emails
- Tente enviar mais de 10 emails em 1 minuto
- ✅ Deve retornar erro de rate limit após o limite
8.2 Verificar Delay Exponencial
- Aguarde o rate limit ser aplicado
- Tente enviar novamente
- ✅ 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:
- Verifique se as VAPID keys estão configuradas no Convex
- Verifique se
VITE_VAPID_PUBLIC_KEYestá no.envdo frontend - Reinicie o servidor Convex e frontend
- Limpe o cache do navegador
- Verifique o console para erros
Preview de links não aparece
Problema: Links não geram preview
Soluções:
- Verifique se a URL é válida (começa com http:// ou https://)
- Aguarde alguns segundos (processamento é assíncrono)
- Verifique o console do Convex para erros na extração
- 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:
- Verifique se a mensagem é sua (só pode editar próprias mensagens)
- Verifique se a mensagem não foi deletada
- Verifique o console para erros
- Certifique-se de que a mutation
editarMensagemestá funcionando
Relatório de Testes
Após completar os testes, preencha:
- Data: ___________
- Testador: ___________
- Ambiente: [ ] Desenvolvimento [ ] Produção
- Navegador: ___________
- Resultados: ___________
Observações: