Skip to content

Add regtest integration coverage for wallet workflows #95

Description

@j-kon

Summary\n\nAdd deterministic integration coverage for four public wallet workflows against a controlled Bitcoin Core + Electrs regtest environment.\n\n## Workflows\n\n- Generate a BDK receive address, validate it with Bitcoin Core, and fund it.\n- Sync a funded wallet and assert exact confirmed and total balance updates.\n- Sync a known incoming transaction and assert canonical history/details survive reload.\n- Build, sign, broadcast, confirm, and resync an outgoing Bitcoin transaction.\n\n## Infrastructure\n\n- Pin a minimal Bitcoin Core + Electrs Docker Compose stack to immutable image digests.\n- Add a focused Dart JSON-RPC helper for funding/mining and bounded readiness polling.\n- Run the tests serially in a dedicated Linux CI job and keep normal dart test env-gated.\n\n## Non-overlap\n\nExisting Electrum/Esplora tests primarily cover connectivity, checkpoints, and API canaries. PR #94 covers SQLite wallet creation and address persistence. The receive-address case here is different: it proves that Bitcoin Core accepts and funds the generated regtest address, then the remaining cases assert real balance, history, and send behavior.\n\n## Acceptance criteria\n\n- [ ] Each requested workflow has a focused integration test and its own commit.\n- [ ] Assertions use exact amounts and known transaction IDs.\n- [ ] CI starts and tears down a fresh regtest stack, printing logs on failure.\n- [ ] The suite passes repeatedly from fresh Docker volumes.\n- [ ] Existing tests, formatting, and analysis continue to pass.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions