cli/command/completion_test.go
Mislav Marohnić 4f03370aa5 Add tests
2019-10-31 23:43:50 +01:00

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)
}
}