Build e testes
Validation contract
Toda PR/commit deve passar:
dotnet build -c Debug
dotnet build -c Release # gate explícito — Release build é parte do contrato
dotnet test
Backend
dotnet test # tudo
dotnet test --filter "FullyQualifiedName~CreateOrder" # por nome
dotnet test tests/MyService.Integration.Tests # um projeto
Os integration tests usam o IntegrationTestFactory, que herda
WebApplicationFactoryBase do DevPack.Testing: troca o
AppDbContext por EF Core InMemory, registra autenticação fake como scheme default e expõe
CreateClientWithRoles("Admin") / CreateAnonymousClient() — testes simulam autorização
por roles sem tokens reais.
Caveat InMemory: o provider não enforça concurrency tokens (
RowVersion) — races de concorrência otimista não são exercitadas; use Testcontainers quando isso importar.
Frontend
cd src/MyService.Spa
pnpm test # Vitest + Testing Library + MSW
pnpm build
Mudou o contrato da API? Re-exporte o spec (GET /openapi/v1.json) e rode pnpm gen:api —
o spec e o schema.d.ts são commitados (codegen hermético).
Próximo: Rodar.