mirror of
https://github.com/aykhans/dodo.git
synced 2025-09-08 20:10:47 +00:00
refactor error types
This commit is contained in:
@@ -23,11 +23,11 @@ type FieldParseError struct {
|
||||
Err error
|
||||
}
|
||||
|
||||
func NewFieldParseError(field string, value string, err error) *FieldParseError {
|
||||
func NewFieldParseError(field string, value string, err error) FieldParseError {
|
||||
if err == nil {
|
||||
err = ErrNoError
|
||||
}
|
||||
return &FieldParseError{field, value, err}
|
||||
return FieldParseError{field, value, err}
|
||||
}
|
||||
|
||||
func (e FieldParseError) Error() string {
|
||||
|
@@ -74,7 +74,7 @@ func TestFieldParseErrors_Error(t *testing.T) {
|
||||
})
|
||||
|
||||
t.Run("Error with single error returns single error message", func(t *testing.T) {
|
||||
fieldErr := *NewFieldParseError("field1", "value1", errors.New("error1"))
|
||||
fieldErr := NewFieldParseError("field1", "value1", errors.New("error1"))
|
||||
fieldErrors := NewFieldParseErrors([]FieldParseError{fieldErr})
|
||||
|
||||
expected := "Field 'field1' parse failed: error1"
|
||||
@@ -82,9 +82,9 @@ func TestFieldParseErrors_Error(t *testing.T) {
|
||||
})
|
||||
|
||||
t.Run("Error with multiple errors returns concatenated messages", func(t *testing.T) {
|
||||
fieldErr1 := *NewFieldParseError("field1", "value1", errors.New("error1"))
|
||||
fieldErr2 := *NewFieldParseError("field2", "value2", errors.New("error2"))
|
||||
fieldErr3 := *NewFieldParseError("field3", "value3", errors.New("error3"))
|
||||
fieldErr1 := NewFieldParseError("field1", "value1", errors.New("error1"))
|
||||
fieldErr2 := NewFieldParseError("field2", "value2", errors.New("error2"))
|
||||
fieldErr3 := NewFieldParseError("field3", "value3", errors.New("error3"))
|
||||
fieldErrors := NewFieldParseErrors([]FieldParseError{fieldErr1, fieldErr2, fieldErr3})
|
||||
|
||||
expected := "Field 'field1' parse failed: error1\nField 'field2' parse failed: error2\nField 'field3' parse failed: error3"
|
||||
@@ -92,8 +92,8 @@ func TestFieldParseErrors_Error(t *testing.T) {
|
||||
})
|
||||
|
||||
t.Run("Error with two errors", func(t *testing.T) {
|
||||
fieldErr1 := *NewFieldParseError("username", "john", errors.New("too short"))
|
||||
fieldErr2 := *NewFieldParseError("email", "invalid", errors.New("invalid format"))
|
||||
fieldErr1 := NewFieldParseError("username", "john", errors.New("too short"))
|
||||
fieldErr2 := NewFieldParseError("email", "invalid", errors.New("invalid format"))
|
||||
fieldErrors := NewFieldParseErrors([]FieldParseError{fieldErr1, fieldErr2})
|
||||
|
||||
expected := "Field 'username' parse failed: too short\nField 'email' parse failed: invalid format"
|
||||
@@ -103,8 +103,8 @@ func TestFieldParseErrors_Error(t *testing.T) {
|
||||
|
||||
func TestNewFieldParseErrors(t *testing.T) {
|
||||
t.Run("Creates FieldParseErrors with correct values", func(t *testing.T) {
|
||||
fieldErr1 := *NewFieldParseError("field1", "value1", errors.New("error1"))
|
||||
fieldErr2 := *NewFieldParseError("field2", "value2", errors.New("error2"))
|
||||
fieldErr1 := NewFieldParseError("field1", "value1", errors.New("error1"))
|
||||
fieldErr2 := NewFieldParseError("field2", "value2", errors.New("error2"))
|
||||
fieldErrors := NewFieldParseErrors([]FieldParseError{fieldErr1, fieldErr2})
|
||||
|
||||
assert.Len(t, fieldErrors.Errors, 2)
|
||||
|
Reference in New Issue
Block a user