-
Notifications
You must be signed in to change notification settings - Fork 82
Open
Description
We currently lack an automated end-to-end test suite to validate Rindexer’s full flow across historic indexing, live indexing, GraphQL, and Postgres. This gap allows regressions to slip through in areas like contract discovery, checkpoint restarts (duplicates), live transaction handling, and downstream integrations.
Why this matters:
- Ensures core flows (historic + live) work against a real node (Anvil).
- Validates Postgres integration and GraphQL queries.
- Prevents regressions on restart semantics (no duplicates).
- Provides reproducible, CI-friendly test targets.
Scope:
- Create an e2e-tests crate with a registry-driven test system and runner.
- Cover historic indexing, live indexing, GraphQL service availability and querying, Postgres writes, multi-network mixed runs, and a direct-RPC verification.
- Add Makefile targets for local dev and CI.
Acceptance Criteria:
-
A new e2e-tests/ workspace member with:
- Registry-based test discovery/runner (TestRegistry, TestRunner).
- Live feeder to generate transactions for live tests.
- Anvil management for test-controlled chains.
- Rindexer process manager and health client.
-
Tests available and passing:
-
Historic:
- Test basic Rindexer connection to Anvil with minimal configuration
- Test Rindexer can discover and register contract events from ABI
- Test Rindexer can index historic events from contract deployment
- Restart indexer and ensure no duplicate events are written
-
Live:
- Test live indexing with background transaction feeder
- Test live indexing with high-frequency transactions
-
GraphQL:
- Start ALL services with Postgres enabled and verify GraphQL stays up,
- Start indexer+graphql, feed events, query transfers with filter & pagination
-
Postgres:
- Enable Postgres storage, run indexing, and verify rows inserted,
- Feed live transfers, index into Postgres, assert exact recipients
-
Direct RPC:
- Direct RPC realism: Rocket Pool rETH Transfer vs expected CSV
-
Multi-network:
- Multi-network historic: mainnet rETH + anvil SimpleERC20
-
Documentation exists under e2e-tests/README.md covering setup, running, and troubleshooting.
Metadata
Metadata
Assignees
Labels
No labels