From 20a74f5a248c844dc2bc9f8e7de5502da022c9c4 Mon Sep 17 00:00:00 2001 From: karel rehor Date: Thu, 8 Aug 2024 15:37:00 +0200 Subject: [PATCH] chore: remove case used in investigating http.Error and add test of http.Error.Error() response. --- api/http/error.go | 2 -- api/http/error_test.go | 28 ++++++++++++++++++++++++++++ 2 files changed, 28 insertions(+), 2 deletions(-) diff --git a/api/http/error.go b/api/http/error.go index 53a91a0..af1a2de 100644 --- a/api/http/error.go +++ b/api/http/error.go @@ -27,8 +27,6 @@ func (e *Error) Error() string { return e.Err.Error() case e.Code != "" && e.Message != "": return fmt.Sprintf("%s: %s", e.Code, e.Message) - case e.Message != "": - return e.Message default: return "Unexpected status code " + strconv.Itoa(e.StatusCode) } diff --git a/api/http/error_test.go b/api/http/error_test.go index ec5dc18..235d865 100644 --- a/api/http/error_test.go +++ b/api/http/error_test.go @@ -5,6 +5,7 @@ package http import ( + "fmt" "github.com/stretchr/testify/assert" ihttp "net/http" @@ -51,3 +52,30 @@ func TestWriteErrorHeaderToString(t *testing.T) { assert.NotContains(t, filterString, "Content-Type: application/json") assert.NotContains(t, filterString, "Retry-After: 2044") } + +func TestErrorIfaceError(t *testing.T) { + tests := []struct { + statusCode int + err error + code string + message string + expected string + }{ + {statusCode: 418, err: fmt.Errorf("original test message"), code: "", message: "", expected: "original test message"}, + {statusCode: 418, err: fmt.Errorf("original test message"), code: "bad request", message: "is this a teapot?", expected: "original test message"}, + {statusCode: 418, err: nil, code: "bad request", message: "is this a teapot?", expected: "bad request: is this a teapot?"}, + {statusCode: 418, err: nil, code: "I'm a teapot", message: "", expected: "Unexpected status code 418"}, + } + + for _, test := range tests { + err := Error{ + StatusCode: test.statusCode, + Code: test.code, + Message: test.message, + Err: test.err, + RetryAfter: 0, + Header: ihttp.Header{}, + } + assert.Equal(t, test.expected, err.Error()) + } +}