feat(sync): full code sync from release
This commit is contained in:
@@ -166,3 +166,18 @@ func TestToHTTP(t *testing.T) {
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
func TestToHTTP_MetadataDeepCopy(t *testing.T) {
|
||||
md := map[string]string{"k": "v"}
|
||||
appErr := BadRequest("BAD_REQUEST", "invalid").WithMetadata(md)
|
||||
|
||||
code, body := ToHTTP(appErr)
|
||||
require.Equal(t, http.StatusBadRequest, code)
|
||||
require.Equal(t, "v", body.Metadata["k"])
|
||||
|
||||
md["k"] = "changed"
|
||||
require.Equal(t, "v", body.Metadata["k"])
|
||||
|
||||
appErr.Metadata["k"] = "changed-again"
|
||||
require.Equal(t, "v", body.Metadata["k"])
|
||||
}
|
||||
|
||||
@@ -16,6 +16,16 @@ func ToHTTP(err error) (statusCode int, body Status) {
|
||||
return http.StatusOK, Status{Code: int32(http.StatusOK)}
|
||||
}
|
||||
|
||||
cloned := Clone(appErr)
|
||||
return int(cloned.Code), cloned.Status
|
||||
body = Status{
|
||||
Code: appErr.Code,
|
||||
Reason: appErr.Reason,
|
||||
Message: appErr.Message,
|
||||
}
|
||||
if appErr.Metadata != nil {
|
||||
body.Metadata = make(map[string]string, len(appErr.Metadata))
|
||||
for k, v := range appErr.Metadata {
|
||||
body.Metadata[k] = v
|
||||
}
|
||||
}
|
||||
return int(appErr.Code), body
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user