Skip to content

Add e2e config startup tests#142

Merged
benthecarman merged 1 commit into
lightningdevkit:mainfrom
benthecarman:config-tests
Jun 24, 2026
Merged

Add e2e config startup tests#142
benthecarman merged 1 commit into
lightningdevkit:mainfrom
benthecarman:config-tests

Conversation

@benthecarman

@benthecarman benthecarman commented Mar 3, 2026

Copy link
Copy Markdown
Collaborator

Continuation of #128 / #113

Add config test suite that verifies server startup with various config combinations (to prevent things like #129) and validates errors for invalid configs.

@ldk-reviews-bot

ldk-reviews-bot commented Mar 3, 2026

Copy link
Copy Markdown

👋 Thanks for assigning @joostjager as a reviewer!
I'll wait for their review and will help manage the review process.
Once they submit their review, I'll check if a second reviewer would be helpful.

@ldk-reviews-bot

Copy link
Copy Markdown

🔔 1st Reminder

Hey @jkczyz! This PR has been waiting for your review.
Please take a look when you have a chance. If you're unable to review, please let us know so we can find another reviewer.

@ldk-reviews-bot

Copy link
Copy Markdown

🔔 2nd Reminder

Hey @jkczyz! This PR has been waiting for your review.
Please take a look when you have a chance. If you're unable to review, please let us know so we can find another reviewer.

@ldk-reviews-bot

Copy link
Copy Markdown

🔔 3rd Reminder

Hey @jkczyz! This PR has been waiting for your review.
Please take a look when you have a chance. If you're unable to review, please let us know so we can find another reviewer.

@ldk-reviews-bot

Copy link
Copy Markdown

🔔 4th Reminder

Hey @jkczyz! This PR has been waiting for your review.
Please take a look when you have a chance. If you're unable to review, please let us know so we can find another reviewer.

@benthecarman benthecarman force-pushed the config-tests branch 2 times, most recently from 1859bb4 to 957057f Compare March 15, 2026 03:56
@ldk-reviews-bot

Copy link
Copy Markdown

🔔 5th Reminder

Hey @jkczyz! This PR has been waiting for your review.
Please take a look when you have a chance. If you're unable to review, please let us know so we can find another reviewer.

This was referenced Mar 17, 2026
Comment thread e2e-tests/src/lib.rs Outdated
@ldk-reviews-bot

Copy link
Copy Markdown

🔔 6th Reminder

Hey @jkczyz! This PR has been waiting for your review.
Please take a look when you have a chance. If you're unable to review, please let us know so we can find another reviewer.

@benthecarman benthecarman force-pushed the config-tests branch 2 times, most recently from 143c748 to 0d33256 Compare March 20, 2026 15:51
@ldk-reviews-bot

Copy link
Copy Markdown

🔔 7th Reminder

Hey @jkczyz! This PR has been waiting for your review.
Please take a look when you have a chance. If you're unable to review, please let us know so we can find another reviewer.

@ldk-reviews-bot

Copy link
Copy Markdown

🔔 8th Reminder

Hey @jkczyz! This PR has been waiting for your review.
Please take a look when you have a chance. If you're unable to review, please let us know so we can find another reviewer.

@ldk-reviews-bot

Copy link
Copy Markdown

🔔 9th Reminder

Hey @jkczyz! This PR has been waiting for your review.
Please take a look when you have a chance. If you're unable to review, please let us know so we can find another reviewer.

@benthecarman benthecarman force-pushed the config-tests branch 3 times, most recently from 69b3d64 to 81f6bf3 Compare March 26, 2026 21:49
@ldk-reviews-bot

Copy link
Copy Markdown

🔔 10th Reminder

Hey @jkczyz! This PR has been waiting for your review.
Please take a look when you have a chance. If you're unable to review, please let us know so we can find another reviewer.

@ldk-reviews-bot

Copy link
Copy Markdown

🔔 11th Reminder

Hey @jkczyz! This PR has been waiting for your review.
Please take a look when you have a chance. If you're unable to review, please let us know so we can find another reviewer.

@ldk-reviews-bot

Copy link
Copy Markdown

🔔 12th Reminder

Hey @jkczyz! This PR has been waiting for your review.
Please take a look when you have a chance. If you're unable to review, please let us know so we can find another reviewer.

@ldk-reviews-bot

Copy link
Copy Markdown

🔔 13th Reminder

Hey @jkczyz! This PR has been waiting for your review.
Please take a look when you have a chance. If you're unable to review, please let us know so we can find another reviewer.

@ldk-reviews-bot

Copy link
Copy Markdown

🔔 14th Reminder

Hey @jkczyz! This PR has been waiting for your review.
Please take a look when you have a chance. If you're unable to review, please let us know so we can find another reviewer.

@ldk-reviews-bot

Copy link
Copy Markdown

🔔 15th Reminder

Hey @jkczyz! This PR has been waiting for your review.
Please take a look when you have a chance. If you're unable to review, please let us know so we can find another reviewer.

@Anyitechs Anyitechs left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Thanks for the cleanup in config.rs, and the robust test!

The logic looks great to me. Just needs a rebase to clear the conflicts.

@jkczyz jkczyz removed their request for review April 8, 2026 14:32
@Camillarhi

Copy link
Copy Markdown

Thanks for this. Building this branch with cargo build emits dead_code warnings on rabbitmq_connection_string, rabbitmq_exchange_name, and lsps2_service_config in ldk-server/src/util/config.rs. Looks like the #[allow(dead_code)] guard on those fields was dropped when they became Option.

@benthecarman

Copy link
Copy Markdown
Collaborator Author

Cleaned up to be a lot simpler than previous iteration

@joostjager joostjager left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

E2E tests seem to be pretty heavy for config validation. Can't that be done just as well on the unit test level?

Perhaps a smoke test is useful that tests one invalid config, see how that traverses the full stack.

@benthecarman

Copy link
Copy Markdown
Collaborator Author

E2E tests seem to be pretty heavy for config validation. Can't that be done just as well on the unit test level?

Perhaps a smoke test is useful that tests one invalid config, see how that traverses the full stack.

Yeah we already have config unit tests, the goal of these is to make it so we test things that our config can't really validate and also make sure we are properly handling a valid config. Removed some of the tests that were basically recreations of the config unit tests and added more that actually target where we could and should throw errors.

joostjager
joostjager previously approved these changes Jun 19, 2026

@joostjager joostjager left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

The latest shape is better after trimming config tests.

I do still get a slight feeling of overlap with ldk-node coverage. Going forward, I think we should be pretty strict about keeping that duplication to a minimum. Just test the things in ldk-server that also mainly live there.

Left a few non-blocking remarks.

Comment thread e2e-tests/tests/config.rs
Comment thread e2e-tests/src/lib.rs Outdated
Comment thread e2e-tests/tests/config.rs Outdated
config.lines().filter(|line| !line.trim_start().starts_with(key)).collect::<Vec<_>>().join("\n")
}

fn replace_config_line(config: &str, key: &str, new_line: &str) -> String {

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I am not sure about this mix of having a config builder, but then also surgically modifying it again. Might be a bit brittle too. Any way to make this more consistent/robust?

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

made this a lot cleaner

Resolve the e2e harness conflicts around gRPC config startup and add
coverage for supported configuration variants and startup failures.

AI-assisted-by: OpenAI Codex

@joostjager joostjager left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Nicer indeed with the builder

Comment thread e2e-tests/src/lib.rs
pub enum ChainSource {
Bitcoind { rpc_address: String, rpc_user: String, rpc_password: String },
Electrum { server_url: String },
Esplora { server_url: String },

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Electrum and Esplora seem to be unused. Would remove it if it is dead currently.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

I am just gonna leave for now, we may implement it eventually.

Comment thread e2e-tests/src/lib.rs
@benthecarman benthecarman merged commit 7250de4 into lightningdevkit:main Jun 24, 2026
8 checks passed
@benthecarman benthecarman deleted the config-tests branch June 24, 2026 17:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

5 participants