package main import ( "net/http" "net/http/httptest" "strings" "testing" "time" ) func TestWorkerStatusReportsCycle(t *testing.T) { status := newWorkerStatus("test-worker", false) status.cycleStarted(time.Date(2026, 8, 23, 10, 0, 0, 0, time.UTC)) status.cycleFinished(time.Date(2026, 8, 23, 10, 0, 1, 0, time.UTC), "idle") recorder := httptest.NewRecorder() status.handler().ServeHTTP(recorder, httptest.NewRequest(http.MethodGet, "/status", nil)) if recorder.Code != http.StatusOK { t.Fatalf("status code = %d, want 200", recorder.Code) } body := recorder.Body.String() for _, expected := range []string{"\"runtime\":\"reflection-worker\"", "\"worker_id\":\"test-worker\"", "\"last_result\":\"idle\""} { if !strings.Contains(body, expected) { t.Fatalf("status body missing %q: %s", expected, body) } } } func TestWorkerHealthIsAvailable(t *testing.T) { recorder := httptest.NewRecorder() newWorkerStatus("test-worker", true).handler().ServeHTTP(recorder, httptest.NewRequest(http.MethodGet, "/healthz", nil)) if recorder.Code != http.StatusOK { t.Fatalf("health status code = %d, want 200", recorder.Code) } }