Pular para o conteúdo principal

Testes e validação

Os testes do COBRES cobrem comportamentos em camadas. Escolha os checks conforme a mudança e mantenha separados os testes sem dependências externas, os testes SQL e os testes HTTP.

API sem banco ativo​

Execute em application/api/, com o ambiente Python preparado:

.venv/bin/python -m pytest -q

Use python -m pytest, não o executável isolado pytest. A coleta depende do pacote tests importável a partir dessa pasta. Testes que exigem SQL ou stack ativa se desabilitam quando suas flags não estão presentes.

Stack e SQL​

A partir de application/:

make up
make migrate
make test

make test prepara o harness, ativa RUN_SQL_TESTS=1 e RUN_LIVE_TESTS=1 e inicia um mock OIDC quando necessário. O target test-sql é um alias desse fluxo, portanto também executa testes live.

O harness limpa limites de frequência de login para manter os testes repetíveis. Use uma stack local dedicada: não aponte esse fluxo para Redis ou banco compartilhados. O mock de identidade roda em desenvolvimento pela porta 9876 e pode ser iniciado com make mock-oidc.

Fronteiras que merecem atenção​

test_session_scope.py garante commit antes da resposta. Os testes de fronteira SQL verificam DML proibido, grants e exposição de funções. Testes de manifesto e snapshots detectam alterações no contrato da camada de plataforma. O produto registra suas entradas em tests/product_boundary.py e seus pontos permitidos de contexto em tests/product_context_hygiene.py.

Mudanças em autenticação e Audience também precisam dos testes de concorrência, revogação, MFA, vínculo e exclusão de conta. Um teste simples de caminho feliz não demonstra isolamento.

Interfaces​

Console e backoffice oferecem (em application/console e application/backoffice):

pnpm typecheck
pnpm lint
pnpm test:unit
pnpm build

No app, use pnpm test (node:test) no lugar de pnpm test:unit. Console e backoffice também têm pnpm test:e2e (Playwright), que sobe a própria SPA com pnpm dev e exige a API e os serviços de apoio em execução.

Antes de concluir​

Verifique o contrato alterado, as mensagens visíveis e a ausência de dados pessoais em logs. Para documentação, execute o build Docusaurus e corrija links, âncoras e MDX inválido. Uma página de documentação não exige a execução da stack financeira ou disparos reais de comunicação.