50 lines
1 KiB
Go
50 lines
1 KiB
Go
package command
|
|
|
|
import (
|
|
"bytes"
|
|
"strings"
|
|
"testing"
|
|
)
|
|
|
|
func TestCompletion_bash(t *testing.T) {
|
|
out := bytes.Buffer{}
|
|
completionCmd.SetOut(&out)
|
|
|
|
RootCmd.SetArgs([]string{"completion"})
|
|
_, err := RootCmd.ExecuteC()
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
outStr := out.String()
|
|
if !strings.Contains(outStr, "complete -o default -F __start_gh gh") {
|
|
t.Errorf("problem in bash completion:\n%s", outStr)
|
|
}
|
|
}
|
|
|
|
func TestCompletion_zsh(t *testing.T) {
|
|
out := bytes.Buffer{}
|
|
completionCmd.SetOut(&out)
|
|
|
|
RootCmd.SetArgs([]string{"completion", "-s", "zsh"})
|
|
_, err := RootCmd.ExecuteC()
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
outStr := out.String()
|
|
if !strings.Contains(outStr, "#compdef _gh gh") {
|
|
t.Errorf("problem in zsh completion:\n%s", outStr)
|
|
}
|
|
}
|
|
|
|
func TestCompletion_unsupported(t *testing.T) {
|
|
out := bytes.Buffer{}
|
|
completionCmd.SetOut(&out)
|
|
|
|
RootCmd.SetArgs([]string{"completion", "-s", "fish"})
|
|
_, err := RootCmd.ExecuteC()
|
|
if err == nil || err.Error() != "unsupported shell type: fish" {
|
|
t.Fatal(err)
|
|
}
|
|
}
|