Skip to content

Commit

Permalink
Merge pull request #13 from CrowdStrike/fix/err_status_code
Browse files Browse the repository at this point in the history
fix: provide highest err code from errs when code is not set and errs are many
  • Loading branch information
jsteenb2 committed Nov 20, 2023
2 parents ba7fc09 + ee60519 commit 1788bba
Show file tree
Hide file tree
Showing 2 changed files with 37 additions and 1 deletion.
34 changes: 34 additions & 0 deletions runner_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -374,6 +374,40 @@ func TestRun_httprunner(t *testing.T) {
equalVals(t, wantErr, got.Errs[0])
},
},
{
name: "encountering errors in new handler will return highest error code",
inputs: inputs{
config: `{"string": "val","integer": 1,"err":true}`,
body: []byte(`{"should":"ignore"}`),
method: "POST",
path: "/path",
},
newHandlerFn: func(ctx context.Context, cfg config) fdk.Handler {
return fdk.ErrHandler(
fdk.APIError{Code: 500, Message: "internal server error"},
fdk.APIError{Code: 501, Message: "even higher"},
fdk.APIError{Code: 400, Message: "some user error"},
)
},
want: func(t *testing.T, resp *http.Response, got respBody) {
equalVals(t, 501, resp.StatusCode)
equalVals(t, 501, got.Code)

if len(got.Errs) != 3 {
t.Fatalf("did not received expected number of errors\n\t\twant:\t3 error\n\t\tgot:\t%+v", got.Errs)
}

wantErrs := []fdk.APIError{
{Code: 500, Message: "internal server error"},
{Code: 501, Message: "even higher"},
{Code: 400, Message: "some user error"},
}
equalVals(t, len(wantErrs), len(got.Errs))
for i, want := range wantErrs {
equalVals(t, want, got.Errs[i])
}
},
},
}

for _, tt := range tests {
Expand Down
4 changes: 3 additions & 1 deletion sdk.go
Original file line number Diff line number Diff line change
Expand Up @@ -131,7 +131,9 @@ func (r Response) StatusCode() int {
code := r.Code
if code == 0 && len(r.Errors) > 0 {
for _, e := range r.Errors {
code = e.Code
if e.Code > code {
code = e.Code
}
}
}
if code == 0 {
Expand Down

0 comments on commit 1788bba

Please sign in to comment.