Pular para conteúdo

ByClinic — Roteiro de Testes QA

Ambiente: https://byclinic.digitalface.dev.br API: https://api.byclinic.digitalface.dev.br Data: 2026-04-16 Versao: MVP


Credenciais de teste

Perfil Email Senha
Admin admin@byclinic.com.br admin123
Medico camila@byclinic.com.br doctor123

1. Autenticacao

1.1 Login — caminho feliz

  • Acessar https://byclinic.digitalface.dev.br
  • Verificar redirect para /login
  • Tela de login: fundo cinza claro, card branco, logo ByClinic cyan
  • Preencher email: admin@byclinic.com.br
  • Preencher senha: admin123
  • Clicar "Entrar"
  • Esperado: redirect para /dashboard

1.2 Login — credenciais invalidas

  • Preencher email incorreto ou senha errada
  • Clicar "Entrar"
  • Esperado: mensagem "Email ou senha incorretos"

1.3 Login — validacao de campos

  • Tentar submeter formulario vazio
  • Esperado: mensagens "Informe seu email" e "Informe sua senha"
  • Digitar email invalido (ex: "abc")
  • Esperado: mensagem "Email invalido"

1.4 Sessao

  • Apos login, fechar aba e reabrir /dashboard
  • Esperado: continua logado (token no localStorage)
  • Limpar localStorage e recarregar
  • Esperado: redirect para /login

2. Layout Geral

2.1 Sidebar

  • Sidebar branca a esquerda (~220px)
  • Logo ByClinic com icone cyan no topo
  • Nome da clinica abaixo do logo
  • Menu items: Visao Geral, Agenda, Pacientes, Financeiro, Minha Clinica, WhatsApp (badge "Beta")
  • Item ativo com fundo cyan claro e texto cyan
  • Botao collapse (< / >) funciona
  • Sidebar colapsada mostra so icones
  • Links "Configuracoes" e "Sair" no rodape

2.2 Header

  • Nome da clinica a esquerda
  • Badge do perfil (Administrador/Medico)
  • Badge do plano (Plano Starter)
  • Icone ajuda (?)
  • Icone notificacoes (sino)
  • Avatar com iniciais do usuario
  • Clicar avatar: dropdown com "Meu Perfil", "Configuracoes", "Sair"

2.3 Mobile (< 768px)

  • Sidebar some, bottom nav aparece
  • Bottom nav: Geral, Agenda, Pacientes, Financeiro, WhatsApp
  • Item ativo em cyan
  • Conteudo ocupa tela cheia

3. Dashboard (Visao Geral)

3.1 Cabecalho

  • Titulo "Visao Geral"
  • Data atual formatada (ex: "quarta-feira, 16 de abril de 2026")

3.2 Cards de estatistica

  • 4 cards no topo: Consultas Hoje, Consultas na Semana, Receita do Mes, Despesas do Mes
  • Cards brancos com bordas coloridas (cyan para positivos, vermelho para despesas)
  • Valores numericos em destaque

3.3 Heatmap de Atividade

  • Grid estilo GitHub contributions
  • Labels dias (Seg, Qua, Sex)
  • Legenda "Menos → Mais" com 5 niveis de azul
  • Tooltip ao passar mouse: "YYYY-MM-DD: X atendimentos"

3.4 Grafico de Receita

  • Area chart com fill gradient cyan
  • Eixo X: meses (Jan, Fev, Mar...)
  • Eixo Y: valores em "Xk"
  • Tooltip com valor em R$ formatado

3.5 Taxa de Ocupacao

  • Progress circular com porcentagem
  • Cores cyan no stroke
  • Taxa de no-show em vermelho

3.6 Consultas por Status

  • Barras horizontais por status
  • Labels: Agendadas, Confirmadas, Em andamento, Concluidas, Canceladas, Nao compareceram
  • Cores distintas por status

3.7 Top Medicos

  • Lista rankada com avatar, nome, qtd consultas
  • Medalhas ouro/prata/bronze nos 3 primeiros

3.8 Ultimas Consultas

  • Tabela com colunas: Paciente, Medico, Horario, Status
  • Avatar com iniciais do paciente
  • Tags coloridas de status

4. Agenda

  • Acessar /agenda
  • Pagina carrega sem erros
  • Titulo "Agenda" visivel
  • Nota: funcionalidade completa depende de dados. Verificar que nao ha erros JS no console.

5. Pacientes

  • Acessar /pacientes
  • Pagina carrega sem erros
  • Titulo visivel
  • Tabela/lista de pacientes (pode estar vazia)
  • Se houver dados: busca por nome funciona

6. Financeiro

  • Acessar /financeiro
  • Pagina carrega sem erros
  • Titulo visivel

7. Minha Clinica (Equipe)

  • Acessar /equipe
  • Pagina carrega sem erros
  • Lista de membros da equipe

8. WhatsApp (CRM)

  • Acessar /crm
  • Pagina carrega sem erros
  • Badge "Beta" no menu sidebar

9. Configuracoes

9.1 Pagina principal

  • Acessar /configuracoes
  • Card "Integracoes" com icone e descricao
  • Clicar navega para /configuracoes/integracoes

9.2 Integracoes

  • Acessar /configuracoes/integracoes
  • Titulo "Integracoes" + subtitulo
  • Botao "Gerar API Key"
  • Botao "Conectar Produto"
  • Estado vazio: "Nenhuma integracao conectada"

9.3 Gerar API Key

  • Clicar "Gerar API Key"
  • Esperado: card cyan aparece com key bc_live_xxxxx...
  • Botao "Copiar" copia para clipboard
  • Verificar API: POST /api/v1/integrations/api-keys retorna 200 com key

9.4 Conectar Produto (modal)

  • Clicar "Conectar Produto"
  • Modal abre com formulario
  • Select: ChatDigi ou Agenda
  • Campos: API Key, URL da API
  • Validacao de campos obrigatorios
  • Nota: conexao real requer produto remoto rodando. Verificar que modal funciona e valida.

10. API Backend — Testes via curl

10.1 Health check

curl https://api.byclinic.digitalface.dev.br/health
Esperado: {"status":"ok","service":"ByClinic"}

10.2 Login

curl -X POST https://api.byclinic.digitalface.dev.br/auth/login \
  -H "Content-Type: application/json" \
  -d '{"email":"admin@byclinic.com.br","password":"admin123"}'
Esperado: 200 com access_token e refresh_token

10.3 Dashboard

TOKEN="<access_token do passo anterior>"
curl https://api.byclinic.digitalface.dev.br/clinic/dashboard \
  -H "Authorization: Bearer $TOKEN"
Esperado: 200 com dados do dashboard

10.4 Gerar API Key (admin)

curl -X POST https://api.byclinic.digitalface.dev.br/api/v1/integrations/api-keys \
  -H "Authorization: Bearer $TOKEN"
Esperado: 200 com api_key e created_at

10.5 Integration Status (API key auth)

API_KEY="<key gerada no passo anterior>"
curl https://api.byclinic.digitalface.dev.br/api/v1/integrations/status \
  -H "X-Integration-Key: $API_KEY"
Esperado: 200 com product, version, features

10.6 Buscar paciente por telefone

curl "https://api.byclinic.digitalface.dev.br/api/v1/integrations/search/patients?phone=+5582999999999" \
  -H "X-Integration-Key: $API_KEY"
Esperado: 200 com found: true/false


11. Cross-browser / Responsivo

  • Chrome desktop — todas paginas carregam
  • Safari desktop — todas paginas carregam
  • Chrome mobile (DevTools responsive) — bottom nav funciona
  • Sem erros JS criticos no console (ignorar warnings de React dev)

12. Seguranca basica

  • Acessar /dashboard sem token → redirect pra /login
  • API sem Bearer token → 401/403
  • API com token expirado → 401
  • Integration endpoints sem X-Integration-Key → 401
  • Integration endpoints com key invalida → 401

Legenda

  • Blocker: impede uso da funcionalidade
  • Major: funcionalidade prejudicada mas contornavel
  • Minor: cosmetico ou UX nao-ideal

Template de Bug Report

**Titulo:** [Pagina] Descricao curta
**Severidade:** Blocker / Major / Minor
**Passos:**
1. ...
2. ...
**Esperado:** ...
**Obtido:** ...
**Screenshot:** (anexar)
**Console errors:** (se houver)
**Browser/Device:** Chrome 125 / macOS