test: fixed broken tests

This commit is contained in:
Saeid Saeidee 2023-01-29 22:02:46 +01:00
parent 54af94146e
commit 5bd20f3121

View File

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