diff --git a/errors_13_test.go b/errors_13_test.go index 1066f059..c85c1a39 100644 --- a/errors_13_test.go +++ b/errors_13_test.go @@ -3,6 +3,7 @@ package gorm_test import ( + "errors" "fmt" "testing" @@ -10,14 +11,32 @@ import ( ) func TestNotFound(t *testing.T) { - var user User - err := DB.Where("name = ?", "not found").First(&user).Error - if err != gorm.ErrRecordNotFound { - t.Error("should not found") + var errs = []error{ + gorm.ErrRecordNotFound, + fmt.Errorf("get user fail: %w", gorm.ErrRecordNotFound), + gorm.Errors{gorm.ErrRecordNotFound, gorm.ErrRecordNotFound}, + gorm.Errors{fmt.Errorf("get user fail: %w", gorm.ErrRecordNotFound), gorm.ErrRecordNotFound}, + gorm.Errors{gorm.ErrRecordNotFound, fmt.Errorf("get user fail: %w", gorm.ErrRecordNotFound)}, + gorm.Errors{fmt.Errorf("get user fail: %w", gorm.ErrRecordNotFound), fmt.Errorf("get user fail: %w", gorm.ErrRecordNotFound)}, + gorm.Errors{gorm.Errors{fmt.Errorf("get user fail: %w", gorm.ErrRecordNotFound), gorm.ErrRecordNotFound}, gorm.ErrRecordNotFound}, } - err = fmt.Errorf("get user fail: %w", err) - if !gorm.IsRecordNotFoundError(err) { - t.Errorf("%s should IsRecordNotFoundError", err) + for _, err := range errs { + if !gorm.IsRecordNotFoundError(err) { + t.Errorf("%s should be ErrRecordNotFound", err) + } + } + + errs = []error{ + errors.New("err"), + fmt.Errorf("get user fail: %s", gorm.ErrRecordNotFound), + fmt.Errorf("get user fail: %v", gorm.ErrRecordNotFound), + fmt.Errorf("get user fail: %+v", gorm.ErrRecordNotFound), + } + + for _, err := range errs { + if gorm.IsRecordNotFoundError(err) { + t.Errorf("%s should not be ErrRecordNotFound", err) + } } }