package main import ( "net/http" "net/http/httptest" "os" "testing" ) func TestDispatchManagementCommand(t *testing.T) { if handled, _ := dispatchManagementCommand(nil); handled { t.Fatal("empty arguments were handled") } if handled, code := dispatchManagementCommand([]string{"install", "--help"}); !handled || code != 0 { t.Fatalf("install help = handled %t code %d", handled, code) } } func TestSecretValue(t *testing.T) { path := t.TempDir() + "/secret" if err := os.WriteFile(path, []byte("value\n"), 0600); err != nil { t.Fatal(err) } got, err := secretValue("", path) if err != nil || got != "value" { t.Fatalf("secretValue() = %q, %v", got, err) } } func TestProbeLiveness(t *testing.T) { t.Parallel() tests := []struct { name string code int want int }{ {name: "healthy", code: http.StatusOK, want: 0}, {name: "unhealthy", code: http.StatusServiceUnavailable, want: 1}, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { t.Parallel() srv := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, _ *http.Request) { w.WriteHeader(tt.code) })) defer srv.Close() if got := probeLiveness(srv.URL); got != tt.want { t.Fatalf("probeLiveness() = %d, want %d", got, tt.want) } }) } }