package api import ( "encoding/json" "net/http/httptest" "testing" ) type testEnvelope struct { Code int `json:"code"` Data json.RawMessage `json:"data"` Message string `json:"message"` TraceID string `json:"trace_id"` Details any `json:"details,omitempty"` } func decodeEnvelope(t *testing.T, rr *httptest.ResponseRecorder, out any) testEnvelope { t.Helper() var env testEnvelope if err := json.Unmarshal(rr.Body.Bytes(), &env); err != nil { t.Fatalf("decode envelope: %v", err) } if out != nil { if err := json.Unmarshal(env.Data, out); err != nil { t.Fatalf("decode envelope data: %v", err) } } return env }