package collect import ( "net/http" "net/http/httptest" "testing" ) func TestFetchRepoISO(t *testing.T) { srv := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { if r.URL.Path != "/api/integration/status" { http.NotFound(w, r) return } _, _ = w.Write([]byte(`{"version":"0.1.3","worker_alive":true,"images":5,"images_bytes":1024,"jobs_failed_24h":1}`)) })) defer srv.Close() r := FetchRepoISO(srv.URL + "/") if !r.Reachable || r.Version != "0.1.3" || !r.WorkerAlive || r.Images != 5 || r.JobsFailed24h != 1 || r.URL != srv.URL { t.Fatalf("unexpected %+v", r) } if r := FetchRepoISO(srv.URL + "/missing"); r.Reachable || r.Error != "HTTP 404" { t.Fatalf("404 not reported: %+v", r) } srv.Close() if r := FetchRepoISO(srv.URL); r.Reachable || r.Error == "" { t.Fatalf("closed server reported reachable: %+v", r) } }