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

@benthecarmanbenthecarman 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
benthecarmanforce-pushed the config-tests branch 2 times, most recently from 1859bb4 to 957057fCompareMarch 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 threade2e-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
benthecarmanforce-pushed the config-tests branch 2 times, most recently from 143c748 to 0d33256CompareMarch 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
benthecarmanforce-pushed the config-tests branch 3 times, most recently from 69b3d64 to 81f6bf3CompareMarch 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.

@AnyitechsAnyitechs 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
CollaboratorAuthor

Cleaned up to be a lot simpler than previous iteration

@joostjagerjoostjager 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
CollaboratorAuthor

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

@joostjagerjoostjager 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 threade2e-tests/tests/config.rs
Comment threade2e-tests/src/lib.rs Outdated
Comment threade2e-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
CollaboratorAuthor

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

@joostjagerjoostjager 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 threade2e-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
CollaboratorAuthor

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 threade2e-tests/src/lib.rs
@benthecarman
benthecarman merged commit 7250de4 into lightningdevkit:mainJun 24, 2026
8 checks passed
@benthecarman
benthecarman deleted the config-tests branch June 24, 2026 17:47
Sign up for freeto 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

@benthecarman@ldk-reviews-bot@Camillarhi@joostjager@Anyitechs
, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Add e2e config startup tests by benthecarman · Pull Request #142 · lightningdevkit/ldk-server · GitHub
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

@benthecarmanbenthecarman 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
benthecarmanforce-pushed the config-tests branch 2 times, most recently from 1859bb4 to 957057fCompareMarch 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 threade2e-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
benthecarmanforce-pushed the config-tests branch 2 times, most recently from 143c748 to 0d33256CompareMarch 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
benthecarmanforce-pushed the config-tests branch 3 times, most recently from 69b3d64 to 81f6bf3CompareMarch 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.

@AnyitechsAnyitechs 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
CollaboratorAuthor

Cleaned up to be a lot simpler than previous iteration

@joostjagerjoostjager 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
CollaboratorAuthor

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

@joostjagerjoostjager 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 threade2e-tests/tests/config.rs
Comment threade2e-tests/src/lib.rs Outdated
Comment threade2e-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
CollaboratorAuthor

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

@joostjagerjoostjager 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 threade2e-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
CollaboratorAuthor

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 threade2e-tests/src/lib.rs
@benthecarman
benthecarman merged commit 7250de4 into lightningdevkit:mainJun 24, 2026
8 checks passed
@benthecarman
benthecarman deleted the config-tests branch June 24, 2026 17:47
Sign up for freeto 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

@benthecarman@ldk-reviews-bot@Camillarhi@joostjager@Anyitechs
, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Add e2e config startup tests by benthecarman · Pull Request #142 · lightningdevkit/ldk-server · GitHub
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

@benthecarmanbenthecarman 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
benthecarmanforce-pushed the config-tests branch 2 times, most recently from 1859bb4 to 957057fCompareMarch 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 threade2e-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
benthecarmanforce-pushed the config-tests branch 2 times, most recently from 143c748 to 0d33256CompareMarch 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
benthecarmanforce-pushed the config-tests branch 3 times, most recently from 69b3d64 to 81f6bf3CompareMarch 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.

@AnyitechsAnyitechs 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
CollaboratorAuthor

Cleaned up to be a lot simpler than previous iteration

@joostjagerjoostjager 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
CollaboratorAuthor

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

@joostjagerjoostjager 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 threade2e-tests/tests/config.rs
Comment threade2e-tests/src/lib.rs Outdated
Comment threade2e-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
CollaboratorAuthor

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

@joostjagerjoostjager 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 threade2e-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
CollaboratorAuthor

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 threade2e-tests/src/lib.rs
@benthecarman
benthecarman merged commit 7250de4 into lightningdevkit:mainJun 24, 2026
8 checks passed
@benthecarman
benthecarman deleted the config-tests branch June 24, 2026 17:47
Sign up for freeto 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

@benthecarman@ldk-reviews-bot@Camillarhi@joostjager@Anyitechs
, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Add e2e config startup tests by benthecarman · Pull Request #142 · lightningdevkit/ldk-server · GitHub
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

@benthecarmanbenthecarman 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
benthecarmanforce-pushed the config-tests branch 2 times, most recently from 1859bb4 to 957057fCompareMarch 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 threade2e-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
benthecarmanforce-pushed the config-tests branch 2 times, most recently from 143c748 to 0d33256CompareMarch 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
benthecarmanforce-pushed the config-tests branch 3 times, most recently from 69b3d64 to 81f6bf3CompareMarch 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.

@AnyitechsAnyitechs 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
CollaboratorAuthor

Cleaned up to be a lot simpler than previous iteration

@joostjagerjoostjager 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
CollaboratorAuthor

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

@joostjagerjoostjager 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 threade2e-tests/tests/config.rs
Comment threade2e-tests/src/lib.rs Outdated
Comment threade2e-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
CollaboratorAuthor

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

@joostjagerjoostjager 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 threade2e-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
CollaboratorAuthor

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 threade2e-tests/src/lib.rs
@benthecarman
benthecarman merged commit 7250de4 into lightningdevkit:mainJun 24, 2026
8 checks passed
@benthecarman
benthecarman deleted the config-tests branch June 24, 2026 17:47
Sign up for freeto 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

@benthecarman@ldk-reviews-bot@Camillarhi@joostjager@Anyitechs
, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' Add e2e config startup tests by benthecarman · Pull Request #142 · lightningdevkit/ldk-server · GitHub
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

@benthecarmanbenthecarman 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
benthecarmanforce-pushed the config-tests branch 2 times, most recently from 1859bb4 to 957057fCompareMarch 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 threade2e-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
benthecarmanforce-pushed the config-tests branch 2 times, most recently from 143c748 to 0d33256CompareMarch 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
benthecarmanforce-pushed the config-tests branch 3 times, most recently from 69b3d64 to 81f6bf3CompareMarch 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.

@AnyitechsAnyitechs 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
CollaboratorAuthor

Cleaned up to be a lot simpler than previous iteration

@joostjagerjoostjager 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
CollaboratorAuthor

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

@joostjagerjoostjager 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 threade2e-tests/tests/config.rs
Comment threade2e-tests/src/lib.rs Outdated
Comment threade2e-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
CollaboratorAuthor

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

@joostjagerjoostjager 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 threade2e-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
CollaboratorAuthor

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 threade2e-tests/src/lib.rs
@benthecarman
benthecarman merged commit 7250de4 into lightningdevkit:mainJun 24, 2026
8 checks passed
@benthecarman
benthecarman deleted the config-tests branch June 24, 2026 17:47
Sign up for freeto 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

@benthecarman@ldk-reviews-bot@Camillarhi@joostjager@Anyitechs
, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Add e2e config startup tests by benthecarman · Pull Request #142 · lightningdevkit/ldk-server · GitHub
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

@benthecarmanbenthecarman 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
benthecarmanforce-pushed the config-tests branch 2 times, most recently from 1859bb4 to 957057fCompareMarch 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 threade2e-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
benthecarmanforce-pushed the config-tests branch 2 times, most recently from 143c748 to 0d33256CompareMarch 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
benthecarmanforce-pushed the config-tests branch 3 times, most recently from 69b3d64 to 81f6bf3CompareMarch 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.

@AnyitechsAnyitechs 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
CollaboratorAuthor

Cleaned up to be a lot simpler than previous iteration

@joostjagerjoostjager 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
CollaboratorAuthor

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

@joostjagerjoostjager 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 threade2e-tests/tests/config.rs
Comment threade2e-tests/src/lib.rs Outdated
Comment threade2e-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
CollaboratorAuthor

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

@joostjagerjoostjager 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 threade2e-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
CollaboratorAuthor

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 threade2e-tests/src/lib.rs
@benthecarman
benthecarman merged commit 7250de4 into lightningdevkit:mainJun 24, 2026
8 checks passed
@benthecarman
benthecarman deleted the config-tests branch June 24, 2026 17:47
Sign up for freeto 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

@benthecarman@ldk-reviews-bot@Camillarhi@joostjager@Anyitechs
, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Add e2e config startup tests by benthecarman · Pull Request #142 · lightningdevkit/ldk-server · GitHub
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

@benthecarmanbenthecarman 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
benthecarmanforce-pushed the config-tests branch 2 times, most recently from 1859bb4 to 957057fCompareMarch 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 threade2e-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
benthecarmanforce-pushed the config-tests branch 2 times, most recently from 143c748 to 0d33256CompareMarch 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
benthecarmanforce-pushed the config-tests branch 3 times, most recently from 69b3d64 to 81f6bf3CompareMarch 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.

@AnyitechsAnyitechs 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
CollaboratorAuthor

Cleaned up to be a lot simpler than previous iteration

@joostjagerjoostjager 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
CollaboratorAuthor

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

@joostjagerjoostjager 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 threade2e-tests/tests/config.rs
Comment threade2e-tests/src/lib.rs Outdated
Comment threade2e-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
CollaboratorAuthor

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

@joostjagerjoostjager 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 threade2e-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
CollaboratorAuthor

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 threade2e-tests/src/lib.rs
@benthecarman
benthecarman merged commit 7250de4 into lightningdevkit:mainJun 24, 2026
8 checks passed
@benthecarman
benthecarman deleted the config-tests branch June 24, 2026 17:47
Sign up for freeto 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

@benthecarman@ldk-reviews-bot@Camillarhi@joostjager@Anyitechs
, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })(); Add e2e config startup tests by benthecarman · Pull Request #142 · lightningdevkit/ldk-server · GitHub
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

@benthecarmanbenthecarman 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
benthecarmanforce-pushed the config-tests branch 2 times, most recently from 1859bb4 to 957057fCompareMarch 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 threade2e-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
benthecarmanforce-pushed the config-tests branch 2 times, most recently from 143c748 to 0d33256CompareMarch 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
benthecarmanforce-pushed the config-tests branch 3 times, most recently from 69b3d64 to 81f6bf3CompareMarch 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.

@AnyitechsAnyitechs 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
CollaboratorAuthor

Cleaned up to be a lot simpler than previous iteration

@joostjagerjoostjager 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
CollaboratorAuthor

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

@joostjagerjoostjager 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 threade2e-tests/tests/config.rs
Comment threade2e-tests/src/lib.rs Outdated
Comment threade2e-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
CollaboratorAuthor

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

@joostjagerjoostjager 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 threade2e-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
CollaboratorAuthor

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 threade2e-tests/src/lib.rs
@benthecarman
benthecarman merged commit 7250de4 into lightningdevkit:mainJun 24, 2026
8 checks passed
@benthecarman
benthecarman deleted the config-tests branch June 24, 2026 17:47
Sign up for freeto 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

@benthecarman@ldk-reviews-bot@Camillarhi@joostjager@Anyitechs