mirror of
https://github.com/matrix-org/dendrite.git
synced 2026-01-09 07:03:10 -06:00
Tweak error handling
This commit is contained in:
parent
75d443203b
commit
1f0f3e8e7c
|
|
@ -72,8 +72,8 @@ func PostJSON[reqtype, restype any, errtype error](
|
|||
}
|
||||
if res.StatusCode != http.StatusOK {
|
||||
var errorBody errtype
|
||||
if msgerr := json.NewDecoder(res.Body).Decode(&errorBody); msgerr == nil {
|
||||
return fmt.Errorf("internal API: %d from %s with unparsable error body", res.StatusCode, apiURL)
|
||||
if msgerr := json.NewDecoder(res.Body).Decode(&errorBody); msgerr != nil {
|
||||
return fmt.Errorf("internal API: %d from %s (failed to decode error: %s)", res.StatusCode, apiURL, msgerr)
|
||||
}
|
||||
return errorBody
|
||||
}
|
||||
|
|
|
|||
|
|
@ -63,8 +63,5 @@ func CallInternalProxyAPI[req, res any, errtype error](name, url string, client
|
|||
defer span.Finish()
|
||||
|
||||
var response res
|
||||
if err := PostJSON[req, res, errtype](ctx, span, client, url, request, &response); err != nil {
|
||||
return response, err
|
||||
}
|
||||
return response, nil
|
||||
return response, PostJSON[req, res, errtype](ctx, span, client, url, request, &response)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -117,16 +117,20 @@ func TestQueryProfile(t *testing.T) {
|
|||
},
|
||||
}
|
||||
|
||||
runCases := func(testAPI api.UserInternalAPI) {
|
||||
runCases := func(testAPI api.UserInternalAPI, http bool) {
|
||||
mode := "monolith"
|
||||
if http {
|
||||
mode = "HTTP"
|
||||
}
|
||||
for _, tc := range testCases {
|
||||
var gotRes api.QueryProfileResponse
|
||||
gotErr := testAPI.QueryProfile(context.TODO(), &tc.req, &gotRes)
|
||||
if tc.wantErr == nil && gotErr != nil || tc.wantErr != nil && gotErr == nil {
|
||||
t.Errorf("QueryProfile error, got %s want %s", gotErr, tc.wantErr)
|
||||
t.Errorf("QueryProfile %s error, got %s want %s", mode, gotErr, tc.wantErr)
|
||||
continue
|
||||
}
|
||||
if !reflect.DeepEqual(tc.wantRes, gotRes) {
|
||||
t.Errorf("QueryProfile response got %+v want %+v", gotRes, tc.wantRes)
|
||||
t.Errorf("QueryProfile %s response got %+v want %+v", mode, gotRes, tc.wantRes)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -140,10 +144,10 @@ func TestQueryProfile(t *testing.T) {
|
|||
if err != nil {
|
||||
t.Fatalf("failed to create HTTP client")
|
||||
}
|
||||
runCases(httpAPI)
|
||||
runCases(httpAPI, true)
|
||||
})
|
||||
t.Run("Monolith", func(t *testing.T) {
|
||||
runCases(userAPI)
|
||||
runCases(userAPI, false)
|
||||
})
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue