diff options
| author | akbash <akbash@herdr.dev> | 2026-07-18 21:27:48 +0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-07-18 21:27:48 +0300 |
| commit | f11be93e0409f8159eb8c501416f4bd3516c4270 (patch) | |
| tree | cde111a1dfcfe51ea6ca042353fc228d5bbbfe3a /tests/cli_wrapper.rs | |
| parent | 02a6e874f67800891b5a549297219ed6f3ce0f2f (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.rs | 55 |
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"); |
