package handler import ( "encoding/json" "net/http" "net/http/httptest" "testing" ) func TestHealthz(t *testing.T) { req := httptest.NewRequest(http.MethodGet, "/healthz", nil) rec := httptest.NewRecorder() New(nil, nil).Router().ServeHTTP(rec, req) if rec.Code != http.StatusOK { t.Fatalf("expected status %d, got %d", http.StatusOK, rec.Code) } var body map[string]string if err := json.NewDecoder(rec.Body).Decode(&body); err != nil { t.Fatalf("failed to decode body: %v", err) } if body["status"] != "ok" { t.Fatalf("expected status ok, got %q", body["status"]) } } func TestPageParams(t *testing.T) { cases := []struct { query string wantPage, wantSz int }{ {"", 1, defaultPageSize}, {"page=3&size=10", 3, 10}, {"page=0&size=-5", 1, defaultPageSize}, {"size=1000", 1, maxPageSize}, {"page=abc", 1, defaultPageSize}, } for _, c := range cases { req := httptest.NewRequest(http.MethodGet, "/?"+c.query, nil) page, size := pageParams(req) if page != c.wantPage || size != c.wantSz { t.Errorf("query %q: got page=%d size=%d, want page=%d size=%d", c.query, page, size, c.wantPage, c.wantSz) } } }