Skip to content

Testing: coverage reporting + minimum thresholds per package/crate #325

Description

@Depo-dev

Summary

Add coverage reporting across Rust, Go, and the SDKs with enforced minimum thresholds on critical packages.

Background & current behaviour

Test suites exist across Rust, Go, and the SDKs (SDK suites were wired into CI in #192), but there is no coverage visibility and no gate, so MVP-critical paths could silently lose test coverage.

Why this matters for MVP

Coverage visibility + a floor on critical packages prevents regression in test quality as the codebase grows toward MVP.

Proposed implementation

  1. Collect coverage: Rust (cargo llvm-cov), Go (go test -coverprofile), TS/Python SDKs (vitest/coverage, pytest-cov).
  2. Upload reports (CI artifact and/or Codecov) and display a summary on PRs.
  3. Enforce a minimum threshold on MVP-critical packages (parser, streamer/db, auth, handlers) — not necessarily the whole tree.
  4. Document how to run coverage locally.

Acceptance criteria

  • Coverage collected for Rust, Go, and TS/Python SDKs.
  • Reports uploaded (artifact or Codecov) + PR summary.
  • Minimum threshold enforced on critical packages/crates.
  • Local coverage instructions documented.

Affected files / components

  • .github/workflows/ci.yml
  • per-language coverage/test configs

Testing & verification

CI produces coverage reports; dropping coverage on a critical package below the floor fails the build.

Related / dependencies

Builds on the wired SDK test suites (#192) + contract tests (#324).

Out of scope

100%-coverage mandates across the whole repo.


Target branch

All work for this issue MUST target the dev branch. Cut your feature branch from dev and open the pull request against dev, never against main. Any PR opened against main for this issue will be closed and asked to re-target dev.

Metadata

Metadata

Labels

Stellar WaveIssues in the Stellar wave programenhancementImprovement to existing behaviortestingTests and test coverage

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions