Add a few common responses

This commit is contained in:
Dan Jones 2024-01-17 15:52:08 -06:00
commit 4ad19029d2
2 changed files with 85 additions and 0 deletions

28
new.go Normal file
View file

@ -0,0 +1,28 @@
package errors
import "net/http"
// Represents a 404 error.
func NewNotFound(format string, parts ...any) SettableError {
if format == "" {
format = "Not Found"
}
return Errorf(http.StatusNotFound, format, parts...)
}
// Represents a 400 error.
func NewBadRequest(format string, parts ...any) SettableError {
if format == "" {
format = "Bad Request"
}
return Errorf(http.StatusBadRequest, format, parts...)
}
// 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
msg := "Unknown Error"
return Errorf(status, format, parts...).Msg(msg)
}

57
new_test.go Normal file
View file

@ -0,0 +1,57 @@
package errors
import (
"net/http"
"testing"
"github.com/stretchr/testify/suite"
)
func TestNew(t *testing.T) {
suite.Run(t, new(NewTestSuite))
}
type NewTestSuite struct {
suite.Suite
}
func (s *NewTestSuite) TestNotFound() {
msg := "I can't see you"
var err ResponsableError = NewNotFound(msg)
s.Assert().NotNil(err)
s.Assert().Equal(http.StatusNotFound, err.GetStatus())
s.Assert().Equal(msg, err.GetMsg())
s.Assert().Equal(msg, err.Error())
}
func (s *NewTestSuite) TestNotFoundDefaultMsg() {
msg := "Not Found"
var err ResponsableError = NewNotFound("")
s.Assert().NotNil(err)
s.Assert().Equal(msg, err.GetMsg())
s.Assert().Equal(msg, err.Error())
}
func (s *NewTestSuite) TestBadRequest() {
msg := "I can't see you"
var err ResponsableError = NewBadRequest(msg)
s.Assert().NotNil(err)
s.Assert().Equal(http.StatusBadRequest, err.GetStatus())
s.Assert().Equal(msg, err.GetMsg())
s.Assert().Equal(msg, err.Error())
}
func (s *NewTestSuite) TestBadRequestDefaultMsg() {
msg := "Bad Request"
var err ResponsableError = NewBadRequest("")
s.Assert().NotNil(err)
s.Assert().Equal(msg, err.GetMsg())
s.Assert().Equal(msg, err.Error())
}
func (s *NewTestSuite) TestInternal() {
var err ResponsableError = NewInternalError("%d > %d", 42, 13)
s.Assert().NotNil(err)
s.Assert().Equal("42 > 13", err.Error())
s.Assert().Equal("Unknown Error", err.GetMsg())
}