package cobra import ( "bytes" "testing" ) func TestCompleteNoDesCmdInFishScript(t *testing.T) { rootCmd := &Command{Use: "root", Args: NoArgs, Run: emptyRun} child := &Command{ Use: "child", ValidArgsFunction: validArgsFunc, Run: emptyRun, } rootCmd.AddCommand(child) buf := new(bytes.Buffer) rootCmd.GenFishCompletion(buf, false) output := buf.String() check(t, output, ShellCompNoDescRequestCmd) } func TestCompleteCmdInFishScript(t *testing.T) { rootCmd := &Command{Use: "root", Args: NoArgs, Run: emptyRun} child := &Command{ Use: "child", ValidArgsFunction: validArgsFunc, Run: emptyRun, } rootCmd.AddCommand(child) buf := new(bytes.Buffer) rootCmd.GenFishCompletion(buf, true) output := buf.String() check(t, output, ShellCompRequestCmd) checkOmit(t, output, ShellCompNoDescRequestCmd) } func TestProgWithDash(t *testing.T) { rootCmd := &Command{Use: "root-dash", Args: NoArgs, Run: emptyRun} buf := new(bytes.Buffer) rootCmd.GenFishCompletion(buf, false) output := buf.String() // Functions name should have replace the '-' check(t, output, "__root_dash_perform_completion") checkOmit(t, output, "__root-dash_perform_completion") // The command name should not have replaced the '-' check(t, output, "-c root-dash") checkOmit(t, output, "-c root_dash") } func TestProgWithColon(t *testing.T) { rootCmd := &Command{Use: "root:colon", Args: NoArgs, Run: emptyRun} buf := new(bytes.Buffer) rootCmd.GenFishCompletion(buf, false) output := buf.String() // Functions name should have replace the ':' check(t, output, "__root_colon_perform_completion") checkOmit(t, output, "__root:colon_perform_completion") // The command name should not have replaced the ':' check(t, output, "-c root:colon") checkOmit(t, output, "-c root_colon") }