From f6ee21f76b3deba5354b945a9feecdd7976b0d40 Mon Sep 17 00:00:00 2001 From: Herlon Aguiar Date: Thu, 26 May 2022 23:38:03 +0200 Subject: [PATCH] nu-cli/completions: add filtering tests for variables completions (#5653) --- .../tests/support/completions_helpers.rs | 10 ++++++ crates/nu-cli/tests/variables_completions.rs | 36 +++++++++++++++++-- 2 files changed, 43 insertions(+), 3 deletions(-) diff --git a/crates/nu-cli/tests/support/completions_helpers.rs b/crates/nu-cli/tests/support/completions_helpers.rs index 68cca54193..f4f5221fc5 100644 --- a/crates/nu-cli/tests/support/completions_helpers.rs +++ b/crates/nu-cli/tests/support/completions_helpers.rs @@ -42,6 +42,16 @@ pub fn new_engine() -> (PathBuf, String, EngineState, Stack) { }, }, ); + stack.add_env_var( + "TEST".to_string(), + Value::String { + val: "NUSHELL".to_string(), + span: nu_protocol::Span { + start: 0, + end: dir_str.len(), + }, + }, + ); // Merge delta let merge_result = engine_state.merge_delta(delta, Some(&mut stack), &dir); diff --git a/crates/nu-cli/tests/variables_completions.rs b/crates/nu-cli/tests/variables_completions.rs index 1b5cdc8fb1..9cb33d5b45 100644 --- a/crates/nu-cli/tests/variables_completions.rs +++ b/crates/nu-cli/tests/variables_completions.rs @@ -35,6 +35,16 @@ fn variables_completions() { // Match results match_suggestions(expected, suggestions); + // Test completions for $nu.h (filter) + let suggestions = completer.complete("$nu.h".into(), 5); + + assert_eq!(2, suggestions.len()); + + let expected: Vec = vec!["history-path".into(), "home-path".into()]; + + // Match results + match_suggestions(expected, suggestions); + // Test completions for custom var let suggestions = completer.complete("$actor.".into(), 7); @@ -45,12 +55,32 @@ fn variables_completions() { // Match results match_suggestions(expected, suggestions); - // Test completions for $env - let suggestions = completer.complete("$env.".into(), 5); + // Test completions for custom var (filtering) + let suggestions = completer.complete("$actor.n".into(), 7); assert_eq!(1, suggestions.len()); - let expected: Vec = vec!["PWD".into()]; + let expected: Vec = vec!["name".into()]; + + // Match results + match_suggestions(expected, suggestions); + + // Test completions for $env + let suggestions = completer.complete("$env.".into(), 5); + + assert_eq!(2, suggestions.len()); + + let expected: Vec = vec!["PWD".into(), "TEST".into()]; + + // Match results + match_suggestions(expected, suggestions); + + // Test completions for $env + let suggestions = completer.complete("$env.T".into(), 5); + + assert_eq!(1, suggestions.len()); + + let expected: Vec = vec!["TEST".into()]; // Match results match_suggestions(expected, suggestions);