Skip to content

Conversation

@xdustinface
Copy link
Collaborator

@xdustinface xdustinface commented Jan 15, 2026

They don't run on CI, don't test much and probably don't work really anyway and they imo never will run on CI since they depend on actual networks. I have better tests coming in testing with local test blockchains in #257.

Summary by CodeRabbit

  • Tests

    • Removed multiple integration tests that required a live Dash Core node (real-node connectivity, sync, validation, and benchmarking scenarios).
  • Documentation

    • Removed integration testing guides and run instructions, plus related test planning and execution documentation.

✏️ Tip: You can customize this high-level summary in your review settings.

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Jan 15, 2026

📝 Walkthrough

Walkthrough

This PR removes integration test code, test guides, and documentation referencing tests that require a real Dash Core node. Deleted items include two Rust test files, a large integration test module, a 192-line run guide, and related documentation updates — totaling ~1,039 lines removed.

Changes

Cohort / File(s) Summary
Top-level docs
AGENTS.md, CLAUDE.md
Removed references and a documented command for running integration tests against a real Dash node.
dash-spv docs
dash-spv/CLAUDE.md, dash-spv/run_integration_tests.md, dash-spv/tests/test_plan.md
Deleted the standalone integration test guide (run_integration_tests.md) and removed Integration/End-to-End Tests sections and related instructions from CLAUDE and test planning docs.
Integration test module
dash-spv/tests/integration_real_node_test.rs
Removed a ~614-line Rust integration test module containing helpers and multiple #[ignore] async tests exercising real Dash Core node connectivity, header sync, validation, resumption, and performance benchmarks.
Additional test file
dash-spv/tests/simple_header_test.rs
Deleted an async test that attempted header sync against a real Dash node (node availability checks, client setup, sync_to_tip with timeout, and assertions).

Sequence Diagram(s)

(omitted)

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Poem

🐰 Hop-scotch through deleted trees,

I nudged the tests and let them breeze,
Fewer logs, a lighter lair,
Quiet nodes breathe cleaner air,
🎩✨ — a rabbit's tidy cheer

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'chore: drop unused integration tests' accurately and directly summarizes the main objective of the PR, which is to remove integration tests that are no longer used.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
  • 📝 Generate docstrings


📜 Recent review details

Configuration used: defaults

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between fc6c17b and 66ea8d2.

📒 Files selected for processing (7)
  • AGENTS.md
  • CLAUDE.md
  • dash-spv/CLAUDE.md
  • dash-spv/run_integration_tests.md
  • dash-spv/tests/integration_real_node_test.rs
  • dash-spv/tests/simple_header_test.rs
  • dash-spv/tests/test_plan.md
💤 Files with no reviewable changes (6)
  • dash-spv/run_integration_tests.md
  • CLAUDE.md
  • dash-spv/tests/test_plan.md
  • dash-spv/tests/simple_header_test.rs
  • dash-spv/tests/integration_real_node_test.rs
  • AGENTS.md
🚧 Files skipped from review as they are similar to previous changes (1)
  • dash-spv/CLAUDE.md

✏️ Tip: You can disable this entire section by setting review_details to false in your review settings.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (2)
dash-spv/CLAUDE.md (2)

125-137: Remove or update outdated integration test documentation.

This section still references "Real network tests" requiring a "Dash Core node at 127.0.0.1:9999 for integration tests" and claims "Integration: Real node connectivity and performance (6/6 passing)". However, this PR explicitly removes integration tests that depend on actual networks. This documentation is now inconsistent with the codebase state and will mislead developers.

Please update this section to reflect that the real-node integration tests have been removed, or clarify the distinction between different test categories if some integration tests remain.

📝 Suggested documentation update

If all real-node integration tests were removed, consider updating the "Test Data Requirements" section to:

 ### Test Data Requirements
-- Dash Core node at `127.0.0.1:9999` for integration tests
-- Tests gracefully handle node unavailability
-- Performance benchmarks expect 50-200+ headers/second sync rates
+- Tests use in-memory or mock implementations and don't require external nodes
+- Real network tests with live Dash Core nodes will be added in a future PR (`#257`)

And update the test status in line 133:

-4. **Integration**: Real node connectivity and performance (6/6 passing)
+4. **Integration**: Mock-based tests (status: to be added in PR `#257`)

206-208: Update debugging guidance to reflect removed integration tests.

The "Network Debugging" section still instructs developers to "Check if Dash Core node is running at 127.0.0.1:9999", which assumes the presence of real-node integration tests that are being removed in this PR. This guidance is no longer applicable.

📝 Suggested fix
 **Network Debugging:**
-- Connection issues: Check if Dash Core node is running at `127.0.0.1:9999`
-- Handshake failures: Verify network (mainnet/testnet/devnet) matches node
-- Timeout issues: Node may be syncing or under load
+- Connection issues: Verify network connectivity and peer addresses
+- Handshake failures: Check that network parameters (mainnet/testnet/devnet) are configured correctly
+- Timeout issues: Network conditions may affect peer connectivity
📜 Review details

Configuration used: defaults

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 89fed4b and fc6c17b.

📒 Files selected for processing (6)
  • AGENTS.md
  • CLAUDE.md
  • dash-spv/CLAUDE.md
  • dash-spv/run_integration_tests.md
  • dash-spv/tests/integration_real_node_test.rs
  • dash-spv/tests/test_plan.md
💤 Files with no reviewable changes (5)
  • CLAUDE.md
  • AGENTS.md
  • dash-spv/tests/test_plan.md
  • dash-spv/run_integration_tests.md
  • dash-spv/tests/integration_real_node_test.rs
🧰 Additional context used
🧠 Learnings (16)
📓 Common learnings
Learnt from: CR
Repo: dashpay/rust-dashcore PR: 0
File: dash-spv/CLAUDE.md:0-0
Timestamp: 2025-12-16T09:03:55.811Z
Learning: Applies to dash-spv/tests/**/*.rs : Integration tests should gracefully handle unavailable Dash Core nodes at 127.0.0.1:9999 without failing the test suite
Learnt from: CR
Repo: dashpay/rust-dashcore PR: 0
File: dash-spv/CLAUDE.md:0-0
Timestamp: 2025-12-16T09:03:55.811Z
Learning: Applies to dash-spv/tests/**/*.rs : Organize tests into unit tests (in-module), integration tests (tests/ directory), real network tests (with live Dash Core nodes), and performance benchmarks
📚 Learning: 2025-12-16T09:03:55.811Z
Learnt from: CR
Repo: dashpay/rust-dashcore PR: 0
File: dash-spv/CLAUDE.md:0-0
Timestamp: 2025-12-16T09:03:55.811Z
Learning: Applies to dash-spv/tests/**/*.rs : Organize tests into unit tests (in-module), integration tests (tests/ directory), real network tests (with live Dash Core nodes), and performance benchmarks

Applied to files:

  • dash-spv/CLAUDE.md
📚 Learning: 2025-12-16T09:03:55.811Z
Learnt from: CR
Repo: dashpay/rust-dashcore PR: 0
File: dash-spv/CLAUDE.md:0-0
Timestamp: 2025-12-16T09:03:55.811Z
Learning: Applies to dash-spv/**/*.rs : Maintain minimum Rust version (MSRV) of 1.89 and use only compatible syntax and features

Applied to files:

  • dash-spv/CLAUDE.md
📚 Learning: 2025-12-16T09:03:55.811Z
Learnt from: CR
Repo: dashpay/rust-dashcore PR: 0
File: dash-spv/CLAUDE.md:0-0
Timestamp: 2025-12-16T09:03:55.811Z
Learning: Applies to dash-spv/tests/**/*.rs : Integration tests should gracefully handle unavailable Dash Core nodes at 127.0.0.1:9999 without failing the test suite

Applied to files:

  • dash-spv/CLAUDE.md
📚 Learning: 2025-12-01T07:59:58.608Z
Learnt from: CR
Repo: dashpay/rust-dashcore PR: 0
File: dash-spv-ffi/CLAUDE.md:0-0
Timestamp: 2025-12-01T07:59:58.608Z
Learning: Applies to dash-spv-ffi/tests/unit/**/*.rs : Add corresponding unit tests in `tests/unit/` for each new FFI function

Applied to files:

  • dash-spv/CLAUDE.md
📚 Learning: 2025-12-16T09:03:55.811Z
Learnt from: CR
Repo: dashpay/rust-dashcore PR: 0
File: dash-spv/CLAUDE.md:0-0
Timestamp: 2025-12-16T09:03:55.811Z
Learning: Applies to dash-spv/**/*.rs : Use async/await throughout the codebase, built on tokio runtime

Applied to files:

  • dash-spv/CLAUDE.md
📚 Learning: 2025-12-30T22:00:57.000Z
Learnt from: CR
Repo: dashpay/rust-dashcore PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-30T22:00:57.000Z
Learning: Applies to **/*test*.rs : Test both mainnet and testnet configurations

Applied to files:

  • dash-spv/CLAUDE.md
📚 Learning: 2025-12-30T22:00:57.000Z
Learnt from: CR
Repo: dashpay/rust-dashcore PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-30T22:00:57.000Z
Learning: Applies to **/*integration*.rs : Write integration tests for network operations

Applied to files:

  • dash-spv/CLAUDE.md
📚 Learning: 2025-12-22T17:59:51.097Z
Learnt from: CR
Repo: dashpay/rust-dashcore PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-12-22T17:59:51.097Z
Learning: Applies to **/tests/**/*.rs : Use descriptive test names (e.g., `test_parse_address_mainnet`)

Applied to files:

  • dash-spv/CLAUDE.md
📚 Learning: 2025-12-16T09:03:55.811Z
Learnt from: CR
Repo: dashpay/rust-dashcore PR: 0
File: dash-spv/CLAUDE.md:0-0
Timestamp: 2025-12-16T09:03:55.811Z
Learning: Run 'cargo fmt --check' to verify formatting, 'cargo clippy --all-targets --all-features -- -D warnings' for linting, and 'cargo check --all-features' to verify all features compile

Applied to files:

  • dash-spv/CLAUDE.md
📚 Learning: 2025-12-22T17:59:51.097Z
Learnt from: CR
Repo: dashpay/rust-dashcore PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-12-22T17:59:51.097Z
Learning: Cover critical parsing, networking, SPV, and wallet flows in tests; add regression tests for fixes; consider property tests with `proptest`

Applied to files:

  • dash-spv/CLAUDE.md
📚 Learning: 2025-12-19T00:07:22.904Z
Learnt from: CR
Repo: dashpay/rust-dashcore PR: 0
File: key-wallet/CLAUDE.md:0-0
Timestamp: 2025-12-19T00:07:22.904Z
Learning: Applies to key-wallet/**/tests/**/*.rs : Organize unit tests by functionality: separate test files for BIP32, mnemonics, addresses, derivation paths, and PSBT operations

Applied to files:

  • dash-spv/CLAUDE.md
📚 Learning: 2025-12-30T22:00:57.000Z
Learnt from: CR
Repo: dashpay/rust-dashcore PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-30T22:00:57.000Z
Learning: Applies to **/*.rs : Write unit tests for new functionality in Rust

Applied to files:

  • dash-spv/CLAUDE.md
📚 Learning: 2025-12-22T17:59:51.097Z
Learnt from: CR
Repo: dashpay/rust-dashcore PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-12-22T17:59:51.097Z
Learning: Applies to **/tests/**/*.rs : Mark network-dependent or long-running tests with `#[ignore]` and run with `-- --ignored`

Applied to files:

  • dash-spv/CLAUDE.md
📚 Learning: 2025-12-22T17:59:51.097Z
Learnt from: CR
Repo: dashpay/rust-dashcore PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-12-22T17:59:51.097Z
Learning: Applies to **/*.rs : Unit tests should live alongside code with `#[cfg(test)]` annotation; integration tests use the `tests/` directory

Applied to files:

  • dash-spv/CLAUDE.md
📚 Learning: 2025-12-19T00:07:22.904Z
Learnt from: CR
Repo: dashpay/rust-dashcore PR: 0
File: key-wallet/CLAUDE.md:0-0
Timestamp: 2025-12-19T00:07:22.904Z
Learning: Applies to key-wallet/**/tests/**/*.rs : Use deterministic testing with known test vectors and fixed seeds for reproducible results

Applied to files:

  • dash-spv/CLAUDE.md
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (14)
  • GitHub Check: fuzz (hashes_sha256)
  • GitHub Check: fuzz (dash_outpoint_string)
  • GitHub Check: fuzz (dash_deserialize_amount)
  • GitHub Check: fuzz (hashes_json)
  • GitHub Check: fuzz (hashes_ripemd160)
  • GitHub Check: fuzz (hashes_sha512_256)
  • GitHub Check: fuzz (hashes_sha512)
  • GitHub Check: fuzz (dash_deser_net_msg)
  • GitHub Check: fuzz (dash_deserialize_witness)
  • GitHub Check: Pre-commit (windows-latest)
  • GitHub Check: fuzz (hashes_sha1)
  • GitHub Check: Pre-commit (ubuntu-latest)
  • GitHub Check: fuzz (dash_deserialize_address)
  • GitHub Check: Pre-commit (macos-latest)
🔇 Additional comments (1)
dash-spv/CLAUDE.md (1)

190-190: No action needed. The test test_handshake_with_mainnet_peer exists at dash-spv/tests/handshake_test.rs:11 and correctly handles the case when a Dash Core node is unavailable at 127.0.0.1:9999 by logging a message rather than failing the test (lines 41–48). The documentation reference is accurate and appropriate.

✏️ Tip: You can disable this entire section by setting review_details to false in your review settings.

@ZocoLini
Copy link
Collaborator

Do we currently have a way to test the client against a network other than running the examples??

@xdustinface
Copy link
Collaborator Author

Do we currently have a way to test the client against a network other than running the examples??

We have the examples and the CLI. Not a test which runs in the actual network but looking at those tests they are not very helpful either even if they would be enabled and they remove some clutter for the sync migration. I think we should eventually have some proper full sync to the network which runs nightly or so but for now i would like to drop those.

Copy link
Collaborator

@ZocoLini ZocoLini left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If they are being an obstacle for the new sync I can approve this but we definetly need good tests for the full sync process. Maybe simulate a blockchsin with idk, 1000 blocks using the dummy constructors I introduce in the test-utils PR

@xdustinface
Copy link
Collaborator Author

xdustinface commented Jan 16, 2026

I have better tests coming in testing with local test blockchains in #257.

See PR description :)

@xdustinface xdustinface merged commit 6ec9d96 into v0.42-dev Jan 16, 2026
53 checks passed
@xdustinface xdustinface deleted the chore/drop-integration-tests branch January 16, 2026 14:53
@ZocoLini
Copy link
Collaborator

oh, okey nice

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants