Testes
Testes não são opcionais nem posteriores. O desenvolvimento é guiado a testes (princípio 8):
toda ADR aplica este padrão e detalha, no 005-relatorio-tecnico.md, o que criou.
Ferramenta
Seção intitulada “Ferramenta”- Vitest é a ferramenta universal de testes.
Tipos de teste
Seção intitulada “Tipos de teste”- Testes unitários (Vitest) cobrindo rotas e services. A rota é testada contra o contrato Zod/OpenAPI — o teste existe antes da implementação.
- Smoke tests por domínio: verificações rápidas, prontas para rodar, que confirmam que os fluxos críticos do domínio respondem ponta a ponta. A unidade de smoke é o domínio, não a rota.
- Testes por humano quando o julgamento visual/funcional exigir — descritos como checklist na ADR.
Fluxo por rota (dentro da ADR)
Seção intitulada “Fluxo por rota (dentro da ADR)”A rota nasce do contrato e o contrato nasce do Zod. A ordem é única:
- Definir os schemas Zod de request/response da rota — o trecho do OpenAPI sai daí. Schemas reutilizáveis ficam em um módulo compartilhado do domínio.
- Escrever o(s) teste(s) unitário(s) da rota contra esse contrato (estado vermelho). O teste exercita a rota como caixa-preta sobre o contrato Zod, não a implementação.
- Implementar a rota e o service até o teste passar (estado verde).
- Atualizar/garantir o smoke do domínio — se a rota é um fluxo crítico do domínio e ainda não está coberta, ela entra. Se já cai dentro de um fluxo crítico existente, nada a fazer.
Smoke por domínio
Seção intitulada “Smoke por domínio”- Um arquivo de smoke por domínio, cobrindo os fluxos críticos dele ponta a ponta (ex.: em
pedidos, criar + listar + cancelar). - A régua é “fluxos críticos cobertos”, não “uma chamada por domínio nem uma chamada por rota”: se uma rota crítica não cai naturalmente no fluxo principal, ela entra no smoke do domínio mesmo assim.
- Smoke é rápido e roda contra a API real (local ou de um ambiente alvo). Não substitui o unitário; complementa.
- Cada entrega deixa o smoke do(s) domínio(s) afetado(s) pronto para execução.
- As validações
pnpm lint,typecheckebuildacompanham os testes como portão de entrega. - O relatório técnico lista os testes unitários e o smoke criados/atualizados.
O escopo de cobertura e os testes específicos são decididos por cada ADR — o padrão universal é que o contrato venha primeiro, o unitário antes da implementação e o smoke por domínio acompanhe a entrega.
Criado por Joseph Trupel