# 🧪 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**: _______________________________________ _______________________________________ _______________________________________