57 lines
1.2 KiB
Go
57 lines
1.2 KiB
Go
package cmd
|
|
|
|
import (
|
|
"strings"
|
|
"testing"
|
|
)
|
|
|
|
func TestEnvOr(t *testing.T) {
|
|
t.Setenv("X_TEST", "")
|
|
if got := envOr("X_TEST", "fallback"); got != "fallback" {
|
|
t.Fatalf("unexpected: %q", got)
|
|
}
|
|
t.Setenv("X_TEST", "value")
|
|
if got := envOr("X_TEST", "fallback"); got != "value" {
|
|
t.Fatalf("unexpected: %q", got)
|
|
}
|
|
}
|
|
|
|
func TestExecute_Help(t *testing.T) {
|
|
out := captureStdout(t, func() {
|
|
_ = captureStderr(t, func() {
|
|
if err := Execute([]string{"--help"}); err != nil {
|
|
t.Fatalf("Execute: %v", err)
|
|
}
|
|
})
|
|
})
|
|
if !strings.Contains(out, "Google CLI") && !strings.Contains(out, "Usage:") {
|
|
t.Fatalf("unexpected help output: %q", out)
|
|
}
|
|
}
|
|
|
|
func TestExecute_UnknownCommand(t *testing.T) {
|
|
errText := captureStderr(t, func() {
|
|
_ = captureStdout(t, func() {
|
|
if err := Execute([]string{"no_such_cmd"}); err == nil {
|
|
t.Fatalf("expected error")
|
|
}
|
|
})
|
|
})
|
|
if errText == "" {
|
|
t.Fatalf("expected stderr output")
|
|
}
|
|
}
|
|
|
|
func TestExecute_UnknownFlag(t *testing.T) {
|
|
errText := captureStderr(t, func() {
|
|
_ = captureStdout(t, func() {
|
|
if err := Execute([]string{"--definitely-nope"}); err == nil {
|
|
t.Fatalf("expected error")
|
|
}
|
|
})
|
|
})
|
|
if errText == "" {
|
|
t.Fatalf("expected stderr output")
|
|
}
|
|
}
|