diff --git a/CHANGELOG.md b/CHANGELOG.md index 8a6f348..0f05820 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +## [0.2.1] - 2024-02-07 + +### Added + +- NewUnauthorized for default 401 +- NewForbidden for default 403 + ## [0.2.0] - 2024-01-21 ### Added 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()) }