Skip to content

Commit

Permalink
✨feat: add function NewErrors to create multiple new errors (#1701)
Browse files Browse the repository at this point in the history
  • Loading branch information
vecpeng committed Jan 10, 2022
1 parent 4f1a712 commit 5fe95c2
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 0 deletions.
23 changes: 23 additions & 0 deletions app.go
Expand Up @@ -711,6 +711,29 @@ func NewError(code int, message ...string) *Error {
return e
}

// NewErrors creates multiple new Errors instance with some message
func NewErrors(code int, messages ...string) []*Error {
var errors []*Error
if len(messages) > 0 {
for _, message := range messages {
e := &Error{
Code: code,
}
e.Message = message
errors = append(errors, e)
}
} else {
// Use default messages
e := &Error{
Code: code,
}
e.Message = utils.StatusMessage(code)
errors = append(errors, e)
}

return errors
}

// Listener can be used to pass a custom listener.
func (app *App) Listener(ln net.Listener) error {
// Prefork is supported for custom listeners
Expand Down
9 changes: 9 additions & 0 deletions app_test.go
Expand Up @@ -1166,6 +1166,15 @@ func Test_NewError(t *testing.T) {
utils.AssertEqual(t, "permission denied", e.Message)
}

func Test_NewErrors(t *testing.T) {
errors := NewErrors(StatusBadRequest, []string{"error 1", "error 2"}...)
utils.AssertEqual(t, StatusBadRequest, errors[0].Code)
utils.AssertEqual(t, "error 1", errors[0].Message)

utils.AssertEqual(t, StatusBadRequest, errors[1].Code)
utils.AssertEqual(t, "error 2", errors[1].Message)
}

// go test -run Test_Test_Timeout
func Test_Test_Timeout(t *testing.T) {
app := New()
Expand Down

0 comments on commit 5fe95c2

Please sign in to comment.