# 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: ```bash 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 ```bash 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 ```bash 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): ```bash 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) ```bash 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) ```bash 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: ```bash # 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 ```bash 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`. ```bash 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`.