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

6.2 KiB

🧪 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:
navigator.serviceWorker.ready.then(reg => {
  reg.pushManager.getSubscription().then(sub => {
    console.log('Subscription:', sub);
  });
});
  1. 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

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

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: