Skip to content

test: Implement integration tests #289

Merged
tvpeter merged 14 commits into
bitcoindevkit:masterfrom
tvpeter:test/integration-tests
Jul 8, 2026
Merged

test: Implement integration tests #289
tvpeter merged 14 commits into
bitcoindevkit:masterfrom
tvpeter:test/integration-tests

Conversation

@tvpeter

@tvpeter tvpeter commented Jun 12, 2026

Copy link
Copy Markdown
Collaborator

Description

This PR builds on #278 and introduces integration tests for bdk-cli. It replaces manual std::process::Command boilerplate with the assert_cmd library, allowing us to perform black-box testing against the compiled binary.

Features covered so far include:

  • key: generate, derive, and restore
  • wallets: list wallets
  • wallet config: save config, read config.
  • descriptor: generate descriptor
  • compile: policy compiler
  • offline wallet operations: new_address, unused_address, balance, unspent, transactions, policies, public_descriptor, create_tx, combine_psbt

Notes to the reviewers

Changelog notice

  • Introduces the BdkCli helper struct to inject context state into base commands.
  • Dropped verbose flag from wallets as it was applicable to only Pbst

Checklists

All Submissions:

  • I've signed all my commits
  • I followed the contribution guidelines
  • I ran cargo fmt and cargo clippy before committing

@codecov

codecov Bot commented Jun 12, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 82.50000% with 14 lines in your changes missing coverage. Please review.
✅ Project coverage is 56.89%. Comparing base (63f769a) to head (6000dd5).
⚠️ Report is 1 commits behind head on master.

Files with missing lines Patch % Lines
src/main.rs 0.00% 8 Missing ⚠️
src/handlers/repl.rs 33.33% 4 Missing ⚠️
src/config.rs 96.66% 1 Missing ⚠️
src/utils/runtime.rs 93.33% 1 Missing ⚠️
Additional details and impacted files
@@             Coverage Diff             @@
##           master     #289       +/-   ##
===========================================
+ Coverage   24.79%   56.89%   +32.10%     
===========================================
  Files          22       22               
  Lines        3678     3661       -17     
===========================================
+ Hits          912     2083     +1171     
+ Misses       2766     1578     -1188     
Flag Coverage Δ
rust 56.89% <82.50%> (+32.10%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@tvpeter tvpeter force-pushed the test/integration-tests branch from b3ffd2d to 0329928 Compare June 22, 2026 21:53
@tvpeter tvpeter marked this pull request as ready for review June 22, 2026 21:56
@tvpeter tvpeter force-pushed the test/integration-tests branch from 0329928 to dfeb580 Compare June 24, 2026 04:45
@tvpeter tvpeter requested a review from notmandatory June 24, 2026 11:23
@tvpeter tvpeter self-assigned this Jun 28, 2026
@tvpeter tvpeter added the test Unit and Integration testing label Jun 28, 2026
@tvpeter tvpeter added this to the CLI 4.0.0 milestone Jun 28, 2026
@tvpeter tvpeter moved this to Ready to Review in BDK-CLI Jun 28, 2026
@tvpeter tvpeter force-pushed the test/integration-tests branch 4 times, most recently from ff42ff3 to 5ea933b Compare July 8, 2026 20:59
tvpeter added 14 commits July 8, 2026 22:49
- add BdkCli helper struct and impl methods
- add integration tests for the key subcommand
operations
- Add integration tests for wallets, descriptor,
compile and config modules
- add integration tests for offline wallet
operations
- Add test for creating, signing, broadcasting tx
- Add test for combining psbt, fee bump and other
psbt related commands
- Add bip322 tests
- add saving proxy_opts for electrum and esplora
clients to config and reading values
- fix prepare_home_dir util fn
Multi-line description of commit,
feel free to be detailed.

[Ticket: X]
- add tests for OP_RETURN in createtx
- add tests for coin selection in createtx
- add test for esplora client full_scan
- fix clippy issues
- The problem: When running `cargo test --all-
features`, the backends (electrum, rpc, esplora
from TestEnv) run in parallel at the number of
cpus available and exhaust the processes/ports
available, thereby resulting in os error 35.

This fix limits the number of threads that are
available for the tests to run in parallel.
@tvpeter tvpeter force-pushed the test/integration-tests branch from 5ea933b to 6000dd5 Compare July 8, 2026 21:49
@tvpeter tvpeter merged commit 32e6115 into bitcoindevkit:master Jul 8, 2026
9 checks passed
@github-project-automation github-project-automation Bot moved this from Ready to Review to Done in BDK-CLI Jul 8, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

test Unit and Integration testing

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

1 participant