Decisões
ORG-0016 — Testes fim a fim hierárquicos
- Status: aceita
- Data: 2026-10-18
- Decide: Playwright Test em TypeScript, com agrupamentos, cenários e casos independentes e setups sob demanda
Contexto
O fim a fim é a única camada que prova que o usuário consegue, numa tela, de ponta a ponta. Um roteiro em seções sequenciais cresce mal: cada seção depende das anteriores, uma falha esconde as outras, e testar uma tela exige rodar tudo antes dela.
Decisão
- Ferramenta igual em toda stack: Playwright Test sobre Node, em
e2e/, em TypeScript, com o Chromium da versão do Playwright. - Quatro níveis: corrida → agrupamento (≈ capability) → cenário (≈ requirement) → caso (≈ scenario). Cada nível declara o setup de que precisa; os setups rodam sob demanda, uma vez cada, em cascata; qualquer caso roda sozinho.
- Os setups usam os mesmos passos dos casos, pela interface. Preparar o ambiente por fora dela é
exceção nomeada: os preparadores
clock,volumeestate. - O ambiente não presume SQL nem um banco só: armazenamentos, dados-base, preparadores e
simuladores de serviços externos (no perfil
e2edo Compose) são pontos de encaixe que a stack preenche numa ADR (a ADR-0004 pré-escrita). Nada sai para a rede de fora. - Modos verificar, demonstrar e capturar; capturas ligadas aos casos; o caso narra os passos e o roteiro legível é gerado de uma corrida.
- Um processo, sem retentativas, sem comparação visual; login pela tela do Keycloak; resultados
em
e2e/results/. Roda na estação de trabalho; na CI, só por ADR da stack.
Alternativas consideradas
| Alternativa | Por que não |
|---|---|
| Executor próprio | Por que não: reimplementa seleção, relatório, trace e isolamento, e tende a virar um roteiro de seções dependentes |
| Cucumber / Gherkin | Por que não: uma camada de tradução de frases a mais; a spec já é o texto legível |
| Cypress | Por que não: sem ganho sobre o Playwright |
Consequências
- O harness
hierarchy/vem do modelo e é igual em toda stack. - Escrever os passos reutilizáveis é trabalho da stack, uma vez por ação.
Mais
O detalhe está na documentação da arquitetura.