gogcli/internal/cmd/root_test.go
2025-12-12 16:21:18 +00:00

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