From 8168ed7bf6257cf3541a4589b2948c47d1c27fd1 Mon Sep 17 00:00:00 2001 From: Mahmoud Al-Qudsi Date: Mon, 31 Oct 2022 16:52:44 -0500 Subject: [PATCH] Test `complete` builtin sort of (sorted + unsorted) completions Like the pexpect-based pager compeltions test `complete-group-order.py`, but for the `complete` builtin. Verifies the same sort/dedup rules that apply to the pager are also applied to the output of `complete` and asserts the sort behavior for multiple `complete -k` calls for the same command and with the same (or with both passing) preconditions. --- tests/checks/complete-group-order.fish | 32 ++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 tests/checks/complete-group-order.fish diff --git a/tests/checks/complete-group-order.fish b/tests/checks/complete-group-order.fish new file mode 100644 index 000000000..6bb9a7f95 --- /dev/null +++ b/tests/checks/complete-group-order.fish @@ -0,0 +1,32 @@ +#RUN: %fish -C 'set -l fish %fish' %s + +function fooc; true; end; + +# A non-`complete -k` completion +complete -c fooc -fa "alpha delta bravo" + +# A `complete -k` completion chronologically and alphabetically before the next completion. You'd +# expect it to come first, but we documented that it will come second. +complete -c fooc -fka "golf charlie echo" + +# A `complete -k` completion that is chronologically after and alphabetically after the previous +# one, so a naive sort would place it after but we want to make sure it comes before. +complete -c fooc -fka "india foxtrot hotel" + +# Another non-`complete -k` completion +complete -c fooc -fa "kilo juliett lima" + +# Generate completions +complete -C"fooc " +# CHECK: alpha +# CHECK: bravo +# CHECK: india +# CHECK: foxtrot +# CHECK: hotel +# CHECK: golf +# CHECK: charlie +# CHECK: delta +# CHECK: echo +# CHECK: juliett +# CHECK: kilo +# CHECK: lima