aboutsummaryrefslogtreecommitdiff
path: root/tests/cli_wrapper.rs
diff options
context:
space:
mode:
authorakbash <akbash@herdr.dev>2026-07-18 21:27:48 +0300
committerGitHub <noreply@github.com>2026-07-18 21:27:48 +0300
commitf11be93e0409f8159eb8c501416f4bd3516c4270 (patch)
treecde111a1dfcfe51ea6ca042353fc228d5bbbfe3a /tests/cli_wrapper.rs
parent02a6e874f67800891b5a549297219ed6f3ce0f2f (diff)
fix: report unknown config keys (#1575)
* fix: report unknown config keys refs #1573 * fix: preserve mixed config warning context refs #1573 --------- Co-authored-by: akbash-bot <300245827+akbash-bot@users.noreply.github.com>
Diffstat (limited to 'tests/cli_wrapper.rs')
-rw-r--r--tests/cli_wrapper.rs55
1 files changed, 55 insertions, 0 deletions
diff --git a/tests/cli_wrapper.rs b/tests/cli_wrapper.rs
index 1b2c6407..0faac229 100644
--- a/tests/cli_wrapper.rs
+++ b/tests/cli_wrapper.rs
@@ -2506,6 +2506,61 @@ fn config_check_reports_invalid_config_without_server() {
}
#[test]
+fn config_check_reports_unknown_keys_without_treating_comments_as_keys() {
+ let base = unique_test_dir();
+ let config_home = base.join("config");
+ let runtime_dir = base.join("runtime");
+ let config_dir = config_home.join(app_dir_name());
+ fs::create_dir_all(&config_dir).unwrap();
+ fs::write(
+ config_dir.join("config.toml"),
+ r#"made_up_toplevel = 1
+"made.up" = 2
+# commented_out_toplevel = true
+
+[ui]
+mouse_capture = true
+mouse_captur = false
+# commented_out_ui_key = true
+
+[keys]
+new_tabb = "ctrl+t"
+"#,
+ )
+ .unwrap();
+
+ let checked = run_named_cli(&config_home, &runtime_dir, &["config", "check"]);
+
+ assert_eq!(checked.status.code(), Some(1));
+ assert!(
+ checked.stderr.is_empty(),
+ "stderr: {}",
+ String::from_utf8_lossy(&checked.stderr)
+ );
+ let stdout = String::from_utf8_lossy(&checked.stdout);
+ assert!(stdout.contains("config: issues found"), "{stdout}");
+ assert!(
+ stdout.contains("unknown config key made_up_toplevel; ignoring key"),
+ "{stdout}"
+ );
+ assert!(
+ stdout.contains("unknown config key \"made.up\"; ignoring key"),
+ "{stdout}"
+ );
+ assert!(
+ stdout.contains("unknown config key ui.mouse_captur; ignoring key"),
+ "{stdout}"
+ );
+ assert!(
+ stdout.contains("unknown config key keys.new_tabb; ignoring key"),
+ "{stdout}"
+ );
+ assert!(!stdout.contains("commented_out"), "{stdout}");
+
+ cleanup_test_base(&base);
+}
+
+#[test]
fn config_check_reports_unreadable_config_path() {
let base = unique_test_dir();
let config_home = base.join("config");