Testes

Gate de cobertura e as verificações ponta a ponta.

scripts/coverage-gate.sh mede cobertura por pacote e reprova (rc=1) abaixo do piso — go test -cover sozinho só imprime e sai 0. Pisos: internal/domain 100%, demais pacotes de internal/ 90%. Isentos: cmd/ (wiring) e internal/ports (só interfaces). Prova de falha: COVERAGE_FLOOR=101 task test:cov tem que reprovar.

Medido em 02/11/2026 (task test:cov, rc=0 — 74 arquivos de teste, 262 funções Test*):

PacoteCoberturaPiso
domain100,0%100%
app95,9%90%
adapters/danfse97,8%90%
adapters/dpsxml96,2%90%
adapters/maildocs96,9%90%
adapters/mcpserver94,1%90%
adapters/memory96,1%90%
adapters/nfsexml96,0%90%
adapters/ntfy100,0%90%
adapters/passcert97,3%90%
adapters/secretbox96,2%90%
adapters/sefin98,2%90%
adapters/simulated100,0%90%
adapters/smtpmail95,9%90%
adapters/sqlite93,5%90%
adapters/textsearch100,0%90%
adapters/turso92,9%90%
adapters/vaultcert90,9%90%
adapters/web93,9%90%

Limite declarado: Go não mede branch nativamente; o número é de linha (statements). As decisões são cobertas por testes de tabela que exercitam os dois lados. A SEFIN é simulada nos testes por um servidor TLS falso (httptest).