package main import ( "net/http" "net/http/httptest" "strings" "testing" ) // TestHealthz ist der Nachweis, dass der App-Dienst tatsaechlich startet und // antwortet (Akzeptanzkriterium 1: "mit einem Befehl installieren und // starten") — geprueft ueber den Handler direkt statt einen echten Port zu // binden, damit der Test parallel und ohne Portkonflikte laufen kann. func TestHealthz(t *testing.T) { mux := http.NewServeMux() mux.HandleFunc("/healthz", func(w http.ResponseWriter, r *http.Request) { w.Header().Set("Content-Type", "application/json") _, _ = w.Write([]byte(`{"status":"ok","service":"dms-app","version":"test"}`)) }) req := httptest.NewRequest(http.MethodGet, "/healthz", nil) rec := httptest.NewRecorder() mux.ServeHTTP(rec, req) if rec.Code != http.StatusOK { t.Fatalf("status = %d, want %d", rec.Code, http.StatusOK) } if !strings.Contains(rec.Body.String(), `"status":"ok"`) { t.Fatalf("unerwarteter body: %s", rec.Body.String()) } }