Files
Reem-Notas/docs/BATERIA-DE-TESTES.md

7.6 KiB

Bateria de testes — Reem Notas (ambiente de teste)

Roteiro de regressão para ser executado por um agente (inclusive modelos menores) com a skill agent-browser. Não é preciso conhecer o projeto: siga os casos na ordem e preencha o relatório do final.

Regras de segurança (leia antes de tudo)

  1. Somente leitura + interações seguras. É PROIBIDO:
    • clicar em qualquer botão que abra confirmação (Tem certeza?, Rebuscar o plano? etc.) — se a confirmação abrir por engano, cancele;
    • finalizar, arquivar, excluir ou registrar pagamento de consolidação;
    • criar, editar ou excluir usuários, perfis, contatos, grupos ou eventos;
    • qualquer envio de WhatsApp/notificação.
    • Formulários só podem ser preenchidos nos casos em que o roteiro mandar explicitamente (login e campos de busca).
  2. Ambiente: https://teste.reemtransportes.com.br (nunca o domínio de produção).
  3. Avisos do ambiente de teste (não são falhas):
    • Não há pagamentos registrados (pago_em vazio) — gráficos e tabelas de pagamento vazios são o esperado;
    • O deploy é manual: o site pode estar atrás do código do repositório. Se um caso falhar por algo que parece "código novo que não chegou lá", registre como DEPLOY? em vez de FALHOU.
  4. Screenshots de evidência vão para o diretório de scratchpad da sessão.

Credenciais

  • Admin (web): e-mail admin@reem.com, senha Reem@2026! — em https://teste.reemtransportes.com.br/auth/login, aba "E-mail".
  • Motorista: aba "PIN Motorista" da mesma tela (PIN de 4 dígitos; se nenhum PIN de teste for fornecido na tarefa, marque o caso 8 como PULADO).

Teste 0 — transversal (rodar em TODA página visitada)

Depois de abrir cada página do roteiro, sempre rode:

agent-browser errors                      # deve vir vazio
agent-browser network requests | grep -E " (4[0-9]{2}|5[0-9]{2})$"   # deve vir vazio
  • Qualquer erro de console JS ⇒ FALHOU (anote a mensagem).
  • Qualquer request com status ≥ 400 ⇒ FALHOU (anote a URL — um asset *_controller-*.js com 404 significa Stimulus quebrado na página inteira; foi exatamente assim que o bug do preview do romaneio passou despercebido).
  • Exceção: chamadas para domínios de terceiros (cloudflareinsights etc.) com falha não reprovam o caso; registre como observação.

Roteiro

Caso 1 — Login por e-mail

agent-browser open https://teste.reemtransportes.com.br/auth/login
agent-browser snapshot -i          # localizar refs de E-mail, Senha e Entrar
agent-browser fill @eX "admin@reem.com"
agent-browser fill @eY "Reem@2026!"
agent-browser press Enter
agent-browser wait --load networkidle
agent-browser get url

PASSOU se: a URL final é /dashboard (ou a home do perfil) e o Teste 0 passa. Obs.: use press Enter — o clique no botão às vezes não navega no primeiro clique.

Caso 2 — Dashboards

agent-browser open https://teste.reemtransportes.com.br/dashboard
agent-browser eval "document.querySelectorAll('canvas').length"      # gráficos Chart.js
agent-browser eval "document.documentElement.scrollWidth <= window.innerWidth"  # sem overflow horizontal
agent-browser screenshot dashboard.png
agent-browser open https://teste.reemtransportes.com.br/dashboard/operacoes
# repetir os três comandos acima (operacoes.png)

PASSOU se: as duas páginas carregam, há pelo menos 1 canvas em cada, sem overflow horizontal, Teste 0 limpo.

Versão mobile (obrigatória no dashboard):

agent-browser set device "iPhone 16"
agent-browser open https://teste.reemtransportes.com.br/dashboard
agent-browser eval "document.documentElement.scrollWidth <= window.innerWidth"
agent-browser screenshot dashboard-mobile.png
agent-browser set viewport 1280 800   # voltar ao desktop

PASSOU se: sem scroll horizontal no mobile (regra do projeto: nada de tabela que exija zoom).

Caso 3 — Consolidações (abas e filtros)

agent-browser open "https://teste.reemtransportes.com.br/consolidacoes?visao=lista"
agent-browser snapshot -i | head -40
agent-browser open "https://teste.reemtransportes.com.br/consolidacoes?visao=motoristas"
agent-browser get url

PASSOU se: as duas visões abrem sem erro; ao trocar de visão os filtros da URL se mantêm (as visões são abas da MESMA tela, não telas separadas); Teste 0 limpo.

Caso 4 — Romaneios (inclui o preview)

agent-browser open https://teste.reemtransportes.com.br/admin/romaneios
agent-browser snapshot -i | head -30          # lista de romaneios
# abrir o primeiro romaneio da lista (link do item):
agent-browser click @eX
agent-browser wait --load networkidle

Na tela do romaneio:

# 4a. O modal de prévia NÃO pode estar visível no carregamento:
agent-browser eval "const o=document.querySelector('[data-romaneio-target=overlay]'); o?getComputedStyle(o).display:'sem overlay'"
# esperado: "none"

# 4b. Abrir a prévia:
agent-browser snapshot -i | grep -i "prévia"   # achar o botão "Ver prévia do PDF"
agent-browser click @eY
agent-browser eval "const o=document.querySelector('[data-romaneio-target=overlay]'); getComputedStyle(o).display + ' src:' + (document.querySelector('iframe[data-romaneio-target=preview]')?.src||'')"
# esperado: "flex src:https://.../pdf?veiculo=..."

# 4c. Fechar com Esc:
agent-browser press Escape
agent-browser eval "getComputedStyle(document.querySelector('[data-romaneio-target=overlay]')).display"
# esperado: "none"

# 4d. PDF responde:
agent-browser eval "fetch(document.querySelector('a[href*=pdf]').href).then(r=>r.status)"
# esperado: 200

PASSOU se: 4a="none", 4b="flex" com src preenchido, 4c="none", 4d=200, Teste 0 limpo. NÃO clicar em "Reimportar plano" (tem confirmação).

Caso 5 — Planilha SimpliRoute

agent-browser open https://teste.reemtransportes.com.br/admin/planilha_simpli_route
agent-browser snapshot -i | head -20

PASSOU se: a tela abre com a lista de operações disponíveis, Teste 0 limpo. (Não é preciso baixar o arquivo.)

Caso 6 — Telas de admin

Abrir cada URL e rodar o Teste 0:

/admin/usuarios
/admin/perfis
/admin/configuracoes
/admin/auditoria_logs
/admin/edicao_lancamento

PASSOU se: todas abrem com conteúdo (título + tabela/cards), sem erro. NÃO editar nada nessas telas.

Caso 7 — Notificações

Abrir cada URL e rodar o Teste 0:

/admin/contatos
/admin/grupos
/admin/eventos
/admin/envios

PASSOU se: todas abrem, sem erro. NÃO disparar envio nem mexer no WhatsApp/sessão.

Caso 8 — Login PIN do motorista (mobile)

Somente se um PIN de teste foi fornecido na tarefa; senão marcar PULADO.

agent-browser set device "iPhone 16"
agent-browser open https://teste.reemtransportes.com.br/auth/login
# clicar na aba "PIN Motorista", digitar o PIN, entrar

PASSOU se: cai no dashboard do motorista, valores legíveis sem zoom, Teste 0 limpo. Ao final: agent-browser set viewport 1280 800.

Relatório final (obrigatório)

Terminar a execução com uma tabela e a lista de falhas:

Caso Resultado Evidência
0 (por página) PASSOU/FALHOU página + erro
1 Login PASSOU/FALHOU/DEPLOY?/PULADO screenshot
2 Dashboards
3 Consolidações
4 Romaneios/preview
5 Planilha
6 Admin
7 Notificações
8 PIN motorista

Depois da tabela, listar somente as falhas, cada uma com: URL, o que era esperado, o que aconteceu (mensagem de erro/console) e o caminho do screenshot. Se tudo passou, dizer isso em uma linha. Encerrar com agent-browser close.