Qualidade e testes
O que rodar antes de abrir um PR, o que o CI confere e os testes que não podem faltar.
Antes de abrir um PR
composer format # Pint: reescreve o PHP
pnpm format # Prettier: reescreve resources/
composer ci:check # exatamente o que o CI roda
pnpm test # Vitest: não está no ci:checkOs dois format primeiro, porque reescrevem arquivos; o ci:check depois só
confere. Rodar as verificações soltas não substitui o ci:check: ele inclui o
pnpm format:check, fácil de esquecer e que reprova o pipeline.
O que o ci:check roda
| Etapa | Comando |
|---|---|
| ESLint | pnpm run lint:check |
| Prettier | pnpm run format:check |
| TypeScript | pnpm run types:check (tsc --noEmit) |
| Pint | pint --parallel --test |
| Larastan (nível 7) | phpstan analyse |
| Pest | php artisan test (PostgreSQL, banco testing) |
O GitHub Actions (.github/workflows/tests.yml) roda composer setup e
composer ci:check com PostgreSQL 17 e Redis, em todo PR e push na main.
Testes que não podem faltar
Cobertura obrigatória em Domain/Financeiro e Domain/Vendas. Não feche PR
sem:
- divisão de parcelas sem perder centavos (R$ 100,00 ÷ 3);
- cada faixa da política de cancelamento, nas bordas exatas (60/59/30/29/15/14/7/6/0 dias);
- idempotência do webhook de pagamento (mesmo evento 2×);
- contrato emitido imutável depois de alterar o modelo do pacote;
- estoque nunca negativo em confirmações concorrentes;
- CPF duplicado rejeitado;
- cada Policy devolvendo 403 para papel sem permissão.
Checklist de revisão
- Nenhum valor monetário fora de
*_centavos - Nenhum select com mais de 50 opções
- Nenhuma listagem sem paginação e filtro no servidor
- Nenhuma rota fora de
authsem justificativa - Nenhum arquivo sensível em disco público
- Nenhum campo numerado (
campo1..campo5) - Nenhum enum duplicado ou ambíguo
- Nenhuma tabela sem FK e UNIQUE onde cabe
- Nenhum documento jurídico renderizado a partir de dado mutável
- Nenhuma autorização fora de Policy
- Nenhum controller com mais de ~150 linhas
- Nenhuma regra de negócio em controller ou TSX
- Nenhuma dependência nova sem justificativa no PR