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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions