293 lines
7.1 KiB
Markdown
293 lines
7.1 KiB
Markdown
# ✅ Checklist de Testes - MediConnect
|
|
|
|
## 🎯 Testes Funcionais
|
|
|
|
### 1. Autenticação ✅
|
|
|
|
#### Login
|
|
|
|
- [x] Login de admin funcionando
|
|
- [x] Login de médico (Dr. Fernando) funcionando
|
|
- [x] Login de paciente (Aurora) funcionando
|
|
- [x] Token JWT sendo retornado corretamente
|
|
- [x] Refresh token funcionando
|
|
|
|
#### Recuperação de Senha
|
|
|
|
- [x] Email de recuperação sendo enviado
|
|
- [x] Token de recuperação detectado na URL
|
|
- [x] Reset de senha funcionando (senha diferente da anterior)
|
|
- [x] Erro 422 tratado quando senha é igual à anterior
|
|
- [x] Redirecionamento para página de reset funcionando
|
|
|
|
### 2. Gestão de Usuários ✅
|
|
|
|
#### Criação de Paciente
|
|
|
|
- [x] Edge Function `create-user-with-password` funcionando
|
|
- [x] Paciente criado com auth user
|
|
- [x] Registro na tabela `patients` criado
|
|
- [x] `user_id` vinculado corretamente ao `auth.users.id`
|
|
- [x] Credenciais de login funcionando após criação
|
|
|
|
**Usuário Teste:**
|
|
|
|
- Email: aurora-nascimento94@gmx.com
|
|
- Senha: auroranasc94
|
|
- Patient ID: b85486f7-9135-4b67-9aa7-b884d9603d12
|
|
|
|
#### Médicos
|
|
|
|
- [x] Dr. Fernando no sistema
|
|
- [x] User ID vinculado corretamente
|
|
- [x] Doctor ID identificado
|
|
- [x] CRM registrado
|
|
|
|
**Médico Teste:**
|
|
|
|
- Email: fernando.pirichowski@souunit.com.br
|
|
- Senha: fernando123
|
|
- Doctor ID: 6dad001d-229b-40b5-80f3-310243c4599c
|
|
|
|
### 3. Disponibilidade Médica ✅
|
|
|
|
#### Criação de Disponibilidade
|
|
|
|
- [x] Script de criação funcionando
|
|
- [x] Campo `weekday` usando strings em inglês
|
|
- [x] Formato de horário correto (HH:MM:SS)
|
|
- [x] Disponibilidade criada para todos os dias da semana
|
|
- [x] Horário: 07:00 - 19:00
|
|
- [x] Duração de slot: 30 minutos
|
|
- [x] Tipo: presencial
|
|
|
|
**Status:**
|
|
|
|
- ✅ 7 dias configurados (Domingo a Sábado)
|
|
- ✅ Dr. Fernando disponível das 07:00 às 19:00
|
|
|
|
### 4. Agendamento de Consultas ✅
|
|
|
|
#### Criação de Consulta
|
|
|
|
- [x] API de appointments funcionando
|
|
- [x] Campo `scheduled_at` usando ISO 8601 DateTime
|
|
- [x] Consulta criada com status "requested"
|
|
- [x] Order number gerado automaticamente (APT-YYYY-NNNN)
|
|
- [x] Duração de 30 minutos configurada
|
|
- [x] Tipo presencial configurado
|
|
|
|
**Consulta Teste:**
|
|
|
|
- Paciente: Aurora
|
|
- Médico: Dr. Fernando
|
|
- Data: 03/11/2025 às 10:00
|
|
- Order Number: APT-2025-00027
|
|
- ID: cb4f608f-e580-437f-8653-75ec74621065
|
|
|
|
### 5. Frontend - Componentes
|
|
|
|
#### AgendamentoConsulta.tsx ✅
|
|
|
|
- [x] Usando `appointmentService` correto
|
|
- [x] Campo `scheduled_at` implementado
|
|
- [x] Formato ISO 8601 DateTime
|
|
- [x] Integração com availability service
|
|
- [x] Integração com exceptions service
|
|
- [x] SMS notification configurado
|
|
|
|
#### Outros Componentes
|
|
|
|
- [ ] BookAppointment.tsx - não usado (pode ser removido)
|
|
- [ ] AgendamentoConsultaSimples.tsx - não usado (pode ser removido)
|
|
|
|
## 🔧 Configurações Verificadas
|
|
|
|
### API Config ✅
|
|
|
|
- [x] `src/services/api/config.ts` - URLs corretas
|
|
- [x] SUPABASE_ANON_KEY atualizada
|
|
- [x] Endpoints configurados corretamente
|
|
|
|
### Services ✅
|
|
|
|
- [x] `appointmentService` - usando campos corretos
|
|
- [x] `availabilityService` - usando weekday strings
|
|
- [x] `authService` - recuperação de senha funcionando
|
|
- [x] `patientService` - CRUD funcionando
|
|
- [x] `doctorService` - CRUD funcionando
|
|
- [x] Todos exportados em `src/services/index.ts`
|
|
|
|
## 🧪 Testes Pendentes
|
|
|
|
### Fluxo Completo de Agendamento
|
|
|
|
- [ ] Paciente faz login
|
|
- [ ] Paciente busca médicos disponíveis
|
|
- [ ] Paciente visualiza horários disponíveis
|
|
- [ ] Paciente agenda consulta
|
|
- [ ] Consulta aparece na lista do paciente
|
|
- [ ] Médico visualiza consulta na agenda
|
|
- [ ] Notificação SMS enviada
|
|
|
|
### Check-in e Atendimento
|
|
|
|
- [ ] Check-in de paciente
|
|
- [ ] Status da consulta muda para "checked_in"
|
|
- [ ] Médico inicia atendimento
|
|
- [ ] Status muda para "in_progress"
|
|
- [ ] Preenchimento de prontuário
|
|
- [ ] Finalização da consulta
|
|
- [ ] Status muda para "completed"
|
|
|
|
### Cancelamento
|
|
|
|
- [ ] Paciente cancela consulta
|
|
- [ ] Médico cancela consulta
|
|
- [ ] Status muda para "cancelled"
|
|
- [ ] Motivo do cancelamento registrado
|
|
- [ ] Horário fica disponível novamente
|
|
|
|
### Exceções de Disponibilidade
|
|
|
|
- [ ] Criar exceção (feriado, folga)
|
|
- [ ] Exceção bloqueia horários
|
|
- [ ] Listar exceções
|
|
- [ ] Remover exceção
|
|
|
|
## 📊 Métricas e Relatórios
|
|
|
|
- [ ] Dashboard de consultas
|
|
- [ ] Estatísticas de atendimento
|
|
- [ ] Relatório de faturamento
|
|
- [ ] Exportação de dados
|
|
|
|
## 🔐 Segurança
|
|
|
|
### Autenticação
|
|
|
|
- [x] JWT tokens funcionando
|
|
- [x] Refresh tokens implementados
|
|
- [x] Session storage configurado
|
|
- [ ] Expiração de tokens tratada
|
|
- [ ] Logout funcionando corretamente
|
|
|
|
### Autorização
|
|
|
|
- [ ] RLS (Row Level Security) configurado no Supabase
|
|
- [ ] Paciente só vê suas próprias consultas
|
|
- [ ] Médico só vê consultas atribuídas
|
|
- [ ] Admin tem acesso total
|
|
- [ ] Secretária tem permissões específicas
|
|
|
|
## 🌐 Deploy e Performance
|
|
|
|
- [ ] Build de produção funcionando
|
|
- [ ] Deploy no Cloudflare Pages
|
|
- [ ] URLs de produção configuradas
|
|
- [ ] Performance otimizada
|
|
- [ ] Lazy loading de componentes
|
|
- [ ] Cache configurado
|
|
|
|
## 📱 Responsividade
|
|
|
|
- [ ] Desktop (1920x1080)
|
|
- [ ] Laptop (1366x768)
|
|
- [ ] Tablet (768x1024)
|
|
- [ ] Mobile (375x667)
|
|
|
|
## ♿ Acessibilidade
|
|
|
|
- [ ] Menu de acessibilidade funcionando
|
|
- [ ] Contraste de cores ajustável
|
|
- [ ] Tamanho de fonte ajustável
|
|
- [ ] Leitura de tela compatível
|
|
- [ ] Navegação por teclado
|
|
|
|
## 🐛 Bugs Conhecidos
|
|
|
|
Nenhum bug crítico identificado até o momento.
|
|
|
|
## 📝 Notas Importantes
|
|
|
|
### Campos Corretos nas APIs
|
|
|
|
1. **appointments.scheduled_at**
|
|
|
|
- ❌ NÃO: `appointment_date` e `appointment_time` separados
|
|
- ✅ SIM: `scheduled_at` com ISO 8601 DateTime
|
|
|
|
2. **doctor_availability.weekday**
|
|
|
|
- ❌ NÃO: Números 0-6
|
|
- ✅ SIM: Strings "sunday", "monday", etc.
|
|
|
|
3. **patients.user_id**
|
|
|
|
- ⚠️ DEVE estar vinculado ao `auth.users.id`
|
|
- Sem isso, queries por user_id falham
|
|
|
|
4. **Password Recovery**
|
|
- ⚠️ Nova senha DEVE ser diferente da anterior
|
|
- Erro 422 com `error_code: "same_password"` se igual
|
|
|
|
### Scripts Úteis
|
|
|
|
```bash
|
|
# Login como usuário
|
|
node get-fernando-user-id.cjs
|
|
|
|
# Buscar dados de paciente
|
|
node get-aurora-info.cjs
|
|
|
|
# Criar disponibilidade
|
|
node create-fernando-availability.cjs
|
|
|
|
# Criar consulta
|
|
node create-aurora-appointment.cjs
|
|
|
|
# Corrigir user_id
|
|
node fix-aurora-user-id.cjs
|
|
```
|
|
|
|
## 🚀 Próximas Funcionalidades
|
|
|
|
1. **Telemedicina**
|
|
|
|
- [ ] Integração com serviço de videochamada
|
|
- [ ] Sala de espera virtual
|
|
- [ ] Gravação de consultas (opcional)
|
|
|
|
2. **Prontuário Eletrônico**
|
|
|
|
- [ ] CRUD completo de prontuários
|
|
- [ ] Histórico de consultas
|
|
- [ ] Anexos e exames
|
|
- [ ] Prescrições médicas
|
|
|
|
3. **Notificações**
|
|
|
|
- [x] SMS via Twilio configurado
|
|
- [ ] Email notifications
|
|
- [ ] Push notifications (PWA)
|
|
- [ ] Lembretes de consulta
|
|
|
|
4. **Pagamentos**
|
|
|
|
- [ ] Integração com gateway de pagamento
|
|
- [ ] Registro de pagamentos
|
|
- [ ] Emissão de recibos
|
|
- [ ] Relatório financeiro
|
|
|
|
5. **Telemática**
|
|
- [ ] Assinatura digital de documentos
|
|
- [ ] Certificação digital A1/A3
|
|
- [ ] Integração com e-SUS
|
|
- [ ] Compliance LGPD
|
|
|
|
---
|
|
|
|
**Última atualização:** 27/10/2025
|
|
**Status:** ✅ APIs configuradas e funcionando
|
|
**Próximo passo:** Testar fluxo completo no frontend
|