36 lines
1.1 KiB
Go
36 lines
1.1 KiB
Go
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)
|
|
}
|
|
}
|