package httpapi import ( "net/http" "net/http/httptest" "strings" "testing" ) func TestMaintenancePoliciesMemoryBackend503(t *testing.T) { srv, err := New(Options{SeedDemo: true, InsecureDev: true}) if err != nil { t.Fatal(err) } defer srv.Close() handler := srv.Handler() tests := []struct { method string path string body string }{ {http.MethodGet, "/v1/maintenance/policies", ""}, {http.MethodPost, "/v1/maintenance/policies", `{"name":"x","table_name":"job_audit","schedule":"0 3 * * *"}`}, {http.MethodPost, "/v1/maintenance/run", `{"policy_id":"00000000-0000-0000-0000-000000000001"}`}, {http.MethodGet, "/v1/maintenance/config-audit", ""}, } for _, tc := range tests { t.Run(tc.method+" "+tc.path, func(t *testing.T) { var req *http.Request if tc.body != "" { req = httptest.NewRequest(tc.method, tc.path, strings.NewReader(tc.body)) req.Header.Set("Content-Type", "application/json") } else { req = httptest.NewRequest(tc.method, tc.path, nil) } req.Header.Set("Authorization", "Bearer dev") rec := httptest.NewRecorder() handler.ServeHTTP(rec, req) if rec.Code != http.StatusServiceUnavailable { t.Fatalf("status=%d body=%s", rec.Code, rec.Body.String()) } }) } }