From ae509db00b1fc562b52352e3a709b49daaa5f00f Mon Sep 17 00:00:00 2001 From: ccoVeille <3875889+ccoVeille@users.noreply.github.com> Date: Sat, 8 Feb 2025 22:53:55 +0100 Subject: [PATCH] chore: add unit tests for completions helper Signed-off-by: ccoVeille <3875889+ccoVeille@users.noreply.github.com> --- completions_test.go | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/completions_test.go b/completions_test.go index a8f378eb..fcae6407 100644 --- a/completions_test.go +++ b/completions_test.go @@ -2872,6 +2872,35 @@ func TestFixedCompletions(t *testing.T) { } } +func TestFixedCompletionsWithCompletionChoiceHelpers(t *testing.T) { + rootCmd := &Command{Use: "root", Args: NoArgs, Run: emptyRun} + // here we are mixing string, CompletionChoice and CompletionChoiceWithDescription + choices := []string{"apple", CompletionChoice("banana"), CompletionChoiceWithDescription("orange", "orange are orange")} + childCmd := &Command{ + Use: "child", + ValidArgsFunction: FixedCompletions(choices, ShellCompDirectiveNoFileComp), + Run: emptyRun, + } + rootCmd.AddCommand(childCmd) + + output, err := executeCommand(rootCmd, ShellCompNoDescRequestCmd, "child", "a") + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + + expected := strings.Join([]string{ + "apple", + "banana", + "orange", + ":4", + "Completion ended with directive: ShellCompDirectiveNoFileComp", "", + }, "\n") + + if output != expected { + t.Errorf("expected: %q, got: %q", expected, output) + } +} + func TestCompletionForGroupedFlags(t *testing.T) { getCmd := func() *Command { rootCmd := &Command{