E2E Tests (Rust)
Overview
Testes em crates/api/tests/integration.rs — sobem app Axum no processo com tower::ServiceExt::oneshot + Postgres de teste.
Guidelines
- Cliente HTTP padrão:
tower::ServiceExt::oneshot(subir a app no processo) +reqwestpara o fluxo HTTP. Não misturar abordagens. - Fluxo: POST criar → GET buscar → POST inválido com assert de
400 { "errors": [...] }(lista completa, §5.1). - Postgres de teste via
docker compose(padrão) outestcontainers(opcional). reqwestetestcontainersficam nos dev-deps decrates/api/Cargo.toml(templateconfig-project-rsjá inclui).cargo test -p api --test integration.- Parte do fechamento de épico: após E2E verde, rodar
check-memory-rs.sh(LeakSanitizer nos mesmos testes de integração).
References
references/e2e-pattern-rs.md— exemplo completo: oneshot + reqwest, Postgres de teste, fluxo POST→GET e assert de erros
Global Standards
- Consultar
../skills-standards.mdseção Rust e §5.1.