test(integration): improve integration test suite coverage#105
test(integration): improve integration test suite coverage#105
Conversation
Greptile SummaryThis PR significantly expands E2E integration coverage (~30 new test binaries) for both the
Confidence Score: 2/5Not safe to merge — the coverage report CI step will fail on every run due to a missing Python script, and the coverage floor provides inadequate regression protection for the combined suite. P0 finding (missing
Important Files Changed
Flowchart%%{init: {'theme': 'neutral'}}%%
flowchart TD
A[CI: integration-coverage job] --> B[integration-coverage-contra\nprod escrow group]
A --> C[integration-coverage-contra-redis\nRedis warm-cache group]
A --> D[build-test escrow\ntest-tree]
D --> E[integration-coverage-indexer\ntest-tree group]
E --> F[Rebuild escrow prod]
F --> G[integration-coverage-indexer\nprod-feature group]
B & C & G --> H[integration-coverage-report]
H --> I{scripts/lcov_filter.py\nexists?}
I -- NO --> J[❌ CI FAILS\nNo such file]
I -- YES --> K[check-coverage-floor\nfloor=45.0]
K --> L{combined pct >= 45?}
L -- YES even at 46% --> M[✅ passes\nbut ~79% expected]
L -- NO --> N[❌ floor breach]
Reviews (1): Last reviewed commit: "test(integration): expand E2E coverage a..." | Re-trigger Greptile |
…80% coverage floor
Summary
The operator sender, JIT mint init, and deferred-remint paths had no E2E coverage. Several helpers were unreachable from the test crate. Mixed escrow
.soartifacts also poisoned the validator'sOnceand cascaded test failures.This PR closes those gaps with new test binaries driven through a scriptable wire boundary. Escrow
.soruns are now grouped and rebuilt between groups.Changes
indexer/src/operator/sender/mod.rs— feature-gatedtest_hooksmodule exposing existingpub(super)helpers. No prod-build surface change.test_utils/src/{mock_rpc,mock_yellowstone}.rs— new scriptable JSON-RPC and Yellowstone gRPC harnesses.integration/tests/indexer/— ~20 new sender/JIT/remint binaries plus reconciliation, gap-detection, resync, bootstrap, and storage-failure coverage.integration/Makefile, rootMakefile,rust.yml— group coverage runs by escrow feature with a mid-run rebuild; pinscargo-nextest@0.9.130.contra-escrow-program/Makefile—build-no-clientstarget for the mid-run rebuild.Impact
test_hookswrappers.Where to look first
indexer/src/operator/sender/mod.rs— only non-mechanical prod change; verifytest_hooksis feature-gated and additive.integration/Makefile :: integration-coverage-indexer— the load-bearing group-ordering fix.integration/Cargo.toml— every new[[test]]entry corresponds to a file underintegration/tests/.test_utils/src/mock_rpc.rs—Reply::Dynamicand theDropimpl that keeps panicking tests from leaking the Tokio task / fd.Coverage Report