diff --git a/tests/error_translator_test.go b/tests/error_translator_test.go index fcbb4f24..085f7be0 100644 --- a/tests/error_translator_test.go +++ b/tests/error_translator_test.go @@ -7,40 +7,36 @@ import ( "gorm.io/gorm" ) +type City struct { + gorm.Model + Name string `gorm:"unique"` +} + func TestPostgresErrorTranslator(t *testing.T) { if DB.Dialector.Name() != "postgres" { t.Skip() } - type Product struct { - gorm.Model - Name string `gorm:"unique"` + DB.Migrator().DropTable(&City{}) + + if err := DB.AutoMigrate(&City{}); err != nil { + t.Fatalf("Failed to migrate cities table, got error: %v", err) } - DB.Migrator().DropTable(&Product{}) - - if err := DB.AutoMigrate(&Product{}); err != nil { - t.Fatalf("Failed to migrate: %v", err) - } - - err := DB.Create(&Product{Name: "Milk"}).Error + err := DB.Create(&City{Name: "Amsterdam"}).Error if err != nil { t.Fatalf("errors happened on create: %v", err) } // test errors to be translated - - err = DB.Create(&Product{Name: "Milk"}).Error + err = DB.Create(&City{Name: "Amsterdam"}).Error if !errors.Is(err, gorm.ErrDuplicatedKey) { t.Fatalf("expected err: %v got err: %v", gorm.ErrDuplicatedKey, err) } // test default errors to not be translated - - var product Product - - err = DB.Find(&product, "name = ?", "coffee").Error - if !errors.Is(err, gorm.ErrRecordNotFound) { + err = DB.Where("name = ?", "Kabul").First(&City{}).Error + if err == nil || !errors.Is(err, gorm.ErrRecordNotFound) { t.Fatalf("expected err: %v got err: %v", gorm.ErrRecordNotFound, err) } } @@ -50,35 +46,26 @@ func TestMysqlErrorTranslator(t *testing.T) { t.Skip() } - type Product struct { - gorm.Model - Name string `gorm:"unique"` + DB.Migrator().DropTable(&City{}) + + if err := DB.AutoMigrate(&City{}); err != nil { + t.Fatalf("Failed to migrate cities table, got error: %v", err) } - DB.Migrator().DropTable(&Product{}) - - if err := DB.AutoMigrate(&Product{}); err != nil { - t.Fatalf("Failed to migrate: %v", err) - } - - err := DB.Create(&Product{Name: "Milk"}).Error + err := DB.Create(&City{Name: "Berlin"}).Error if err != nil { t.Fatalf("errors happened on create: %v", err) } // test errors to be translated - - err = DB.Create(&Product{Name: "Milk"}).Error + err = DB.Create(&City{Name: "Berlin"}).Error if !errors.Is(err, gorm.ErrDuplicatedKey) { t.Fatalf("expected err: %v got err: %v", gorm.ErrDuplicatedKey, err) } // test default errors to not be translated - - var product Product - - err = DB.Find(&product, "name = ?", "coffee").Error - if !errors.Is(err, gorm.ErrRecordNotFound) { + err = DB.Where("name = ?", "Istanbul").First(&City{}).Error + if err == nil || !errors.Is(err, gorm.ErrRecordNotFound) { t.Fatalf("expected err: %v got err: %v", gorm.ErrRecordNotFound, err) } } @@ -88,35 +75,26 @@ func TestMssqlErrorTranslator(t *testing.T) { t.Skip() } - type Product struct { - gorm.Model - Name string `gorm:"unique"` + DB.Migrator().DropTable(&City{}) + + if err := DB.AutoMigrate(&City{}); err != nil { + t.Fatalf("Failed to migrate cities table, got error: %v", err) } - DB.Migrator().DropTable(&Product{}) - - if err := DB.AutoMigrate(&Product{}); err != nil { - t.Fatalf("Failed to migrate: %v", err) - } - - err := DB.Create(&Product{Name: "Milk"}).Error + err := DB.Create(&City{Name: "Paris"}).Error if err != nil { t.Fatalf("errors happened on create: %v", err) } // test errors to be translated - - err = DB.Create(&Product{Name: "Milk"}).Error + err = DB.Create(&City{Name: "Paris"}).Error if !errors.Is(err, gorm.ErrDuplicatedKey) { t.Fatalf("expected err: %v got err: %v", gorm.ErrDuplicatedKey, err) } // test default errors to not be translated - - var product Product - - err = DB.Find(&product, "name = ?", "coffee").Error - if !errors.Is(err, gorm.ErrRecordNotFound) { + err = DB.Where("name = ?", "Prague").First(&City{}).Error + if err == nil || !errors.Is(err, gorm.ErrRecordNotFound) { t.Fatalf("expected err: %v got err: %v", gorm.ErrRecordNotFound, err) } } @@ -126,35 +104,26 @@ func TestSqliteErrorTranslator(t *testing.T) { t.Skip() } - type Product struct { - gorm.Model - Name string `gorm:"unique"` + DB.Migrator().DropTable(&City{}) + + if err := DB.AutoMigrate(&City{}); err != nil { + t.Fatalf("Failed to migrate cities table, got error: %v", err) } - DB.Migrator().DropTable(&Product{}) - - if err := DB.AutoMigrate(&Product{}); err != nil { - t.Fatalf("Failed to migrate: %v", err) - } - - err := DB.Create(&Product{Name: "Milk"}).Error + err := DB.Create(&City{Name: "Madrid"}).Error if err != nil { t.Fatalf("errors happened on create: %v", err) } // test errors to be translated - - err = DB.Create(&Product{Name: "Milk"}).Error + err = DB.Create(&City{Name: "Madrid"}).Error if !errors.Is(err, gorm.ErrDuplicatedKey) { t.Fatalf("expected err: %v got err: %v", gorm.ErrDuplicatedKey, err) } // test default errors to not be translated - - var product Product - - err = DB.Find(&product, "name = ?", "coffee").Error - if !errors.Is(err, gorm.ErrRecordNotFound) { + err = DB.Where("name = ?", "Rome").First(&City{}).Error + if err == nil || !errors.Is(err, gorm.ErrRecordNotFound) { t.Fatalf("expected err: %v got err: %v", gorm.ErrRecordNotFound, err) } }