From a36fc0b316ca7f605420224464348605ed261ff5 Mon Sep 17 00:00:00 2001 From: Noah Hellman Date: Sat, 14 Mar 2026 15:31:03 +0100 Subject: [PATCH] pager tests: add completions helper will be especially helpful for multi-completion tests Part of #12546 --- src/pager.rs | 45 +++++++++++++++++---------------------------- 1 file changed, 17 insertions(+), 28 deletions(-) diff --git a/src/pager.rs b/src/pager.rs index dc328e416..985424783 100644 --- a/src/pager.rs +++ b/src/pager.rs @@ -1409,16 +1409,23 @@ macro_rules! validate { }; } + let completions = |cs: &[(&str, &str)]| { + cs.iter() + .map(|(c, d)| { + Completion::new( + WString::from(*c), + WString::from(*d), + StringFuzzyMatch::exact_match(), + CompleteFlags::default(), + ) + }) + .collect::>() + }; + let mut pager = Pager::default(); // These test cases have equal completions and descriptions - let c1s = vec![Completion::new( - L!("abcdefghij").to_owned(), - L!("1234567890").to_owned(), - StringFuzzyMatch::exact_match(), - CompleteFlags::default(), - )]; - pager.set_completions(&c1s, true); + pager.set_completions(&completions(&[("abcdefghij", "1234567890")]), true); validate!(&mut pager, 26, L!("abcdefghij (1234567890)")); validate!(&mut pager, 25, L!("abcdefghij (1234567890)")); @@ -1433,13 +1440,7 @@ macro_rules! validate { validate!(&mut pager, 16, L!("abcdefg… (123…)")); // These test cases have heavyweight completions - let c2s = vec![Completion::new( - L!("abcdefghijklmnopqrs").to_owned(), - L!("1").to_owned(), - StringFuzzyMatch::exact_match(), - CompleteFlags::default(), - )]; - pager.set_completions(&c2s, true); + pager.set_completions(&completions(&[("abcdefghijklmnopqrs", "1")]), true); validate!(&mut pager, 26, L!("abcdefghijklmnopqrs (1)")); validate!(&mut pager, 25, L!("abcdefghijklmnopqrs (1)")); validate!(&mut pager, 24, L!("abcdefghijklmnopqrs (1)")); @@ -1453,13 +1454,7 @@ macro_rules! validate { validate!(&mut pager, 16, L!("abcdefghij… (1)")); // These test cases have no descriptions - let c3s = vec![Completion::new( - L!("abcdefghijklmnopqrst").to_owned(), - L!("").to_owned(), - StringFuzzyMatch::exact_match(), - CompleteFlags::default(), - )]; - pager.set_completions(&c3s, true); + pager.set_completions(&completions(&[("abcdefghijklmnopqrst", "")]), true); validate!(&mut pager, 26, L!("abcdefghijklmnopqrst")); validate!(&mut pager, 25, L!("abcdefghijklmnopqrst")); validate!(&mut pager, 24, L!("abcdefghijklmnopqrst")); @@ -1473,14 +1468,8 @@ macro_rules! validate { validate!(&mut pager, 16, L!("abcdefghijklmno…")); // Newlines in prefix - let c4s = vec![Completion::new( - L!("Hello").to_owned(), - L!("").to_owned(), - StringFuzzyMatch::exact_match(), - CompleteFlags::default(), - )]; pager.set_prefix(Cow::Borrowed(L!("{\\\n")), false); // } - pager.set_completions(&c4s, true); + pager.set_completions(&completions(&[("Hello", "")]), true); validate!(&mut pager, 30, L!("{\\␊Hello")); // } } }