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