From 27c3fd670cedfb1040e51c49ed9067e592fa2cec Mon Sep 17 00:00:00 2001 From: blindfs Date: Tue, 22 Apr 2025 11:16:05 +0800 Subject: [PATCH] test: vibe coded --- crates/nu-cli/tests/completions/mod.rs | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/crates/nu-cli/tests/completions/mod.rs b/crates/nu-cli/tests/completions/mod.rs index c8a02790dd..6402116e2b 100644 --- a/crates/nu-cli/tests/completions/mod.rs +++ b/crates/nu-cli/tests/completions/mod.rs @@ -2258,6 +2258,30 @@ fn extern_custom_completion_short_flag(mut extern_completer: NuCompleter) { match_suggestions(&expected, &suggestions); } +/// When we're completing the flag name itself, not its value, +/// custom completions should not be used +#[rstest] +fn custom_completion_flag_name_not_value(mut extern_completer: NuCompleter) { + let suggestions = extern_completer.complete("spam --f", 8); + assert!( + suggestions.iter().any(|s| s.value == "--foo"), + "Should contain --foo flag" + ); + let should_not_contain: Vec<_> = vec!["cat", "dog", "eel"]; + for item in should_not_contain { + assert!( + !suggestions.iter().any(|s| s.value == item), + "Should not contain custom completion {}", + item + ); + } + + // Also test with partial short flag + let suggestions = extern_completer.complete("spam -f", 7); + assert_eq!(1, suggestions.len(), "Should only have one suggestion"); + assert_eq!("-f", suggestions[0].value, "Should suggest -f flag"); +} + #[rstest] fn extern_complete_flags(mut extern_completer: NuCompleter) { let suggestions = extern_completer.complete("spam -", 6);