9.4 KiB
Guia de Testes - Sistema de Chat SGSE
Pré-requisitos
- Backend rodando:
cd packages/backend
npx convex dev
- Frontend rodando:
cd apps/web
npm run dev
- Pelo menos 2 usuários cadastrados no sistema
Roteiro de Testes
1. Login e Interface Inicial ✅
Passos:
- Acesse http://localhost:5173
- Faça login com um usuário
- Verifique se o sino de notificações aparece no header (ao lado do nome)
- Verifique se o botão de chat aparece no canto inferior direito
Resultado esperado:
- Sino de notificações visível
- Botão de chat flutuante visível
- Status do usuário como "online"
2. Configurar Perfil 👤
Passos:
- Clique no avatar do usuário no header
- Clique em "Meu Perfil"
- Escolha um avatar ou faça upload de uma foto
- Preencha o setor (ex: "Recursos Humanos")
- Adicione uma mensagem de status (ex: "Disponível para reuniões")
- Configure o status de presença
- Ative notificações
- Clique em "Salvar Configurações"
Resultado esperado:
- Avatar/foto atualizado
- Configurações salvas com sucesso
- Mensagem de confirmação aparece
3. Abrir o Chat 💬
Passos:
- Clique no botão de chat no canto inferior direito
- A janela do chat deve abrir
Resultado esperado:
- Janela do chat abre com animação suave
- Título "Chat" visível
- Botões de minimizar e fechar visíveis
- Mensagem "Nenhuma conversa ainda" aparece
4. Criar Nova Conversa Individual 👥
Passos:
- Clique no botão "Nova Conversa"
- Na tab "Individual", veja a lista de usuários
- Procure um usuário na busca (digite o nome)
- Clique no usuário para iniciar conversa
Resultado esperado:
- Modal abre com lista de usuários
- Busca funciona corretamente
- Status de presença dos usuários visível (bolinha colorida)
- Ao clicar, conversa é criada e modal fecha
- Janela de conversa abre automaticamente
5. Enviar Mensagens de Texto 📝
Passos:
- Na conversa aberta, digite uma mensagem
- Pressione Enter para enviar
- Digite outra mensagem
- Pressione Shift+Enter para quebrar linha
- Pressione Enter para enviar
Resultado esperado:
- Mensagem enviada aparece à direita (azul)
- Timestamp visível
- Indicador "digitando..." aparece para o outro usuário
- Segunda mensagem com quebra de linha enviada corretamente
6. Testar Tempo Real (Use 2 navegadores) 🔄
Passos:
- Abra outro navegador/aba anônima
- Faça login com outro usuário
- Abra o chat
- Na primeira conta, envie uma mensagem
- Na segunda conta, veja a mensagem chegar em tempo real
Resultado esperado:
- Mensagem aparece instantaneamente no outro navegador
- Notificação aparece no sino
- Som de notificação toca (se configurado)
- Notificação desktop aparece (se permitido)
- Contador de não lidas atualiza
7. Upload de Arquivo 📎
Passos:
- Na conversa, clique no ícone de anexar
- Selecione um arquivo (PDF, imagem, etc - max 10MB)
- Aguarde o upload
Resultado esperado:
- Loading durante upload
- Arquivo aparece na conversa
- Se for imagem, preview inline
- Se for arquivo, ícone com nome e tamanho
- Outro usuário pode baixar o arquivo
8. Agendar Mensagem ⏰
Passos:
- Na conversa, clique no ícone de relógio (agendar)
- Digite uma mensagem
- Selecione uma data futura (ex: hoje + 2 minutos)
- Selecione um horário
- Veja o preview: "Será enviada em..."
- Clique em "Agendar"
Resultado esperado:
- Modal de agendamento abre
- Data/hora mínima é agora
- Preview atualiza conforme você digita
- Mensagem aparece na lista de "Mensagens Agendadas"
- Após o tempo definido, mensagem é enviada automaticamente
- Notificação é criada para o destinatário
9. Cancelar Mensagem Agendada ❌
Passos:
- No modal de agendamento, veja a lista de mensagens agendadas
- Clique no ícone de lixeira de uma mensagem
- Confirme o cancelamento
Resultado esperado:
- Mensagem removida da lista
- Mensagem não será enviada
10. Criar Grupo 👥👥👥
Passos:
- Clique em "Nova Conversa"
- Vá para a tab "Grupo"
- Digite um nome para o grupo (ex: "Equipe RH")
- Selecione 2 ou mais participantes
- Clique em "Criar Grupo"
Resultado esperado:
- Grupo criado com sucesso
- Nome do grupo aparece no header
- Emoji de grupo (👥) aparece
- Todos os participantes recebem notificação
- Mensagens enviadas são recebidas por todos
11. Notificações 🔔
Passos:
- Com usuário 1, envie mensagem para usuário 2
- No usuário 2, verifique:
- Sino com contador
- Badge no botão de chat
- Notificação desktop (se permitido)
- Som (se ativado)
- Clique no sino
- Veja as notificações no dropdown
- Clique em "Marcar todas como lidas"
Resultado esperado:
- Contador atualiza corretamente
- Dropdown mostra notificações recentes
- Botão "Marcar todas como lidas" funciona
- Notificações somem após marcar como lidas
12. Status de Presença 🟢🟡🔴
Passos:
- No perfil, mude o status para "Ausente"
- Veja em outro navegador - bolinha deve ficar amarela
- Mude para "Em Reunião"
- Veja em outro navegador - bolinha deve ficar vermelha
- Feche a aba
- Veja em outro navegador - status deve mudar para "Offline"
Resultado esperado:
- Status atualiza em tempo real para outros usuários
- Cores corretas:
- Verde = Online
- Amarelo = Ausente
- Azul = Externo
- Vermelho = Em Reunião
- Cinza = Offline
13. Indicador "Digitando..." ⌨️
Passos:
- Com 2 navegadores abertos na mesma conversa
- No navegador 1, comece a digitar (não envie)
- No navegador 2, veja o indicador aparecer
Resultado esperado:
- Texto "Usuário está digitando..." aparece
- 3 bolinhas animadas
- Indicador desaparece após 10s sem digitação
- Indicador desaparece se mensagem for enviada
14. Mensagens Não Lidas 📨
Passos:
- Com usuário 1, envie 3 mensagens para usuário 2
- No usuário 2, veja o contador
- Abra a lista de conversas
- Veja o badge de não lidas na conversa
- Abra a conversa
- Veja o contador zerar
Resultado esperado:
- Badge mostra número correto (max 9+)
- Ao abrir conversa, mensagens são marcadas como lidas automaticamente
- Contador zera
15. Minimizar e Maximizar 📐
Passos:
- Abra o chat
- Clique no botão de minimizar (-)
- Veja o chat minimizar
- Clique no botão flutuante novamente
- Chat abre de volta no mesmo estado
Resultado esperado:
- Chat minimiza para o botão flutuante
- Estado preservado (conversa ativa mantida)
- Animações suaves
16. Scroll de Mensagens 📜
Passos:
- Em uma conversa com poucas mensagens, envie várias mensagens
- Veja o auto-scroll para a última mensagem
- Role para cima
- Veja mensagens mais antigas
- Envie nova mensagem
- Role deve continuar na posição (não auto-scroll)
- Role até o final
- Envie mensagem - deve auto-scroll
Resultado esperado:
- Auto-scroll apenas se estiver no final
- Scroll manual preservado
- Performance fluída
17. Responsividade 📱
Passos:
- Abra o chat no desktop (> 768px)
- Redimensione a janela para mobile (< 768px)
- Abra o chat
- Veja ocupar tela inteira
Resultado esperado:
- Desktop: janela 400x600px, bottom-right
- Mobile: fullscreen
- Transição suave entre layouts
18. Logout e Presença ⚡
Passos:
- Com chat aberto, faça logout
- Em outro navegador, veja o status mudar para "offline"
Resultado esperado:
- Status muda para offline imediatamente
- Chat fecha ao fazer logout
Checklist de Funcionalidades ✅
- Login e visualização inicial
- Configuração de perfil (avatar, foto, setor, status)
- Abrir/fechar/minimizar chat
- Criar conversa individual
- Criar grupo
- Enviar mensagens de texto
- Upload de arquivos
- Upload de imagens
- Mensagens em tempo real (2 navegadores)
- Agendar mensagem
- Cancelar mensagem agendada
- Notificações no sino
- Notificações desktop
- Som de notificação
- Contador de não lidas
- Marcar como lida
- Status de presença (online/offline/ausente/externo/em_reunião)
- Indicador "digitando..."
- Busca de conversas
- Scroll de mensagens
- Auto-scroll inteligente
- Responsividade (desktop e mobile)
- Animações e transições
- Loading states
- Mensagens de erro
Problemas Comuns e Soluções 🔧
Chat não abre
Solução: Verifique se está logado e se o backend Convex está rodando
Mensagens não aparecem em tempo real
Solução: Verifique a conexão com o Convex (console do navegador)
Upload de arquivo falha
Solução: Verifique o tamanho (max 10MB) e se o backend está rodando
Notificações não aparecem
Solução: Permitir notificações no navegador (Settings > Notifications)
Som não toca
Solução: Adicionar arquivo notification.mp3 em /static/sounds/
Indicador de digitação não aparece
Solução: Aguarde 1 segundo após começar a digitar (debounce)
Mensagem agendada não enviada
Solução: Verificar se o cron está rodando no Convex
Logs para Debug 🐛
Abra o Console do Navegador (F12) e veja:
// Convex queries/mutations
// Erros de rede
// Notificações
// Status de presença
Conclusão 🎉
Se todos os testes passaram, o sistema de chat está 100% funcional!
Aproveite o novo sistema de comunicação! 💬✨