package api import ( "encoding/json" "net/http/httptest" "testing" ) type testEnvelope struct { Code string `json:"code"` Data json.RawMessage `json:"data"` Message string `json:"message"` } 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 }