diff --git a/main_test.go b/main_test.go index 68bf7419..1d11221e 100644 --- a/main_test.go +++ b/main_test.go @@ -12,6 +12,7 @@ import ( "os" "path/filepath" "reflect" + "runtime" "strconv" "strings" "sync" @@ -651,6 +652,31 @@ func TestRaw(t *testing.T) { } } +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") + } + err = fmt.Errorf("get user fail: %w", err) + + gover := strings.TrimPrefix(runtime.Version(), "go") + govers := strings.Split(gover, ".") + majorVer, err1 := strconv.Atoi(govers[0]) + minorVer, err2 := strconv.Atoi(govers[1]) + if err1 != nil || err2 != nil { + t.Errorf("invalid go version %s", gover) + } + if majorVer >= 1 && minorVer >= 13 { + if !gorm.IsRecordNotFoundError(err) { + t.Errorf("%s should IsRecordNotFoundError", err) + } + t.Logf("err is %s, >=1.13, test IsRecordNotFoundError success", err) + } else { + t.Logf("err is %s, <1.13, skip test", err) + } +} + func TestGroup(t *testing.T) { rows, err := DB.Select("name").Table("users").Group("name").Rows()