This stubs stderr separately from stdout in command tests (before those streams were combined) and improves test assertions around output. Additionally, no longer use the `cmd.Print*()` family of Cobra functions because their name sounds like the text will go to stdout, but they write to stderr instead. Use the more explicit `cmd.ErrOrStderr()` as output destination instead.
35 lines
776 B
Go
35 lines
776 B
Go
package command
|
|
|
|
import (
|
|
"strings"
|
|
"testing"
|
|
)
|
|
|
|
func TestCompletion_bash(t *testing.T) {
|
|
output, err := RunCommand(completionCmd, `completion`)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
if !strings.Contains(output.String(), "complete -o default -F __start_gh gh") {
|
|
t.Errorf("problem in bash completion:\n%s", output)
|
|
}
|
|
}
|
|
|
|
func TestCompletion_zsh(t *testing.T) {
|
|
output, err := RunCommand(completionCmd, `completion -s zsh`)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
if !strings.Contains(output.String(), "#compdef _gh gh") {
|
|
t.Errorf("problem in zsh completion:\n%s", output)
|
|
}
|
|
}
|
|
|
|
func TestCompletion_unsupported(t *testing.T) {
|
|
_, err := RunCommand(completionCmd, `completion -s fish`)
|
|
if err == nil || err.Error() != "unsupported shell type: fish" {
|
|
t.Fatal(err)
|
|
}
|
|
}
|