From 0e12c479be415bac7b1f9b9794ba613a5f51a911 Mon Sep 17 00:00:00 2001 From: Dan Jones Date: Wed, 7 Feb 2024 08:57:14 -0600 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20Add=20401=20and=20403=20default=20e?= =?UTF-8?q?rrors?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- new.go | 10 ++++++++++ new_test.go | 24 +++++++++++++++++++----- 2 files changed, 29 insertions(+), 5 deletions(-) diff --git a/new.go b/new.go index 0adc51d..a4c7eef 100644 --- a/new.go +++ b/new.go @@ -20,6 +20,16 @@ func NewBadRequest(format string, parts ...any) SettableError { return Errorf(http.StatusBadRequest, format, parts...) } +// A 401 error with the error message "Unauthorized" +func NewUnauthorized() SettableError { + return Errorf(http.StatusUnauthorized, "Unauthorized") +} + +// A 403 error with the error message "Forbidden" +func NewForbidden() SettableError { + return Errorf(http.StatusForbidden, "Forbidden") +} + // Represents a 500 error. For this error, the user error is preset to "Unknown Error". func NewInternalError(format string, parts ...any) SettableError { status := http.StatusInternalServerError diff --git a/new_test.go b/new_test.go index 12cae4d..71ef3c8 100644 --- a/new_test.go +++ b/new_test.go @@ -18,16 +18,30 @@ type NewTestSuite struct { func (s *NewTestSuite) TestNotFound() { msg := "I can't see you" var err ResponsableError = NewNotFound(msg) - s.Assert().NotNil(err) + s.Assert().Error(err) s.Assert().Equal(http.StatusNotFound, err.Status()) s.Assert().Equal(msg, err.Msg()) s.Assert().Equal(msg, err.Error()) } +func (s *NewTestSuite) TestUnauthorized() { + var err ResponsableError = NewUnauthorized() + s.Assert().Error(err) + s.Assert().Equal(http.StatusUnauthorized, err.Status()) + s.Assert().Equal("Unauthorized", err.Msg()) +} + +func (s *NewTestSuite) TestForbidden() { + var err ResponsableError = NewForbidden() + s.Assert().Error(err) + s.Assert().Equal(http.StatusForbidden, err.Status()) + s.Assert().Equal("Forbidden", err.Msg()) +} + func (s *NewTestSuite) TestNotFoundDefaultMsg() { msg := "Not Found" var err ResponsableError = NewNotFound("") - s.Assert().NotNil(err) + s.Assert().Error(err) s.Assert().Equal(msg, err.Msg()) s.Assert().Equal(msg, err.Error()) } @@ -35,7 +49,7 @@ func (s *NewTestSuite) TestNotFoundDefaultMsg() { func (s *NewTestSuite) TestBadRequest() { msg := "I can't see you" var err ResponsableError = NewBadRequest(msg) - s.Assert().NotNil(err) + s.Assert().Error(err) s.Assert().Equal(http.StatusBadRequest, err.Status()) s.Assert().Equal(msg, err.Msg()) s.Assert().Equal(msg, err.Error()) @@ -44,14 +58,14 @@ func (s *NewTestSuite) TestBadRequest() { func (s *NewTestSuite) TestBadRequestDefaultMsg() { msg := "Bad Request" var err ResponsableError = NewBadRequest("") - s.Assert().NotNil(err) + s.Assert().Error(err) s.Assert().Equal(msg, err.Msg()) s.Assert().Equal(msg, err.Error()) } func (s *NewTestSuite) TestInternal() { var err ResponsableError = NewInternalError("%d > %d", 42, 13) - s.Assert().NotNil(err) + s.Assert().Error(err) s.Assert().Equal("42 > 13", err.Error()) s.Assert().Equal("Unknown Error", err.Msg()) }