Files
sqlite3/gormlite/error_translator_test.go

48 lines
1.1 KiB
Go
Raw Normal View History

2024-06-21 16:23:56 +01:00
package gormlite
import (
"testing"
"gorm.io/gorm"
"gorm.io/gorm/logger"
2024-10-18 12:20:32 +01:00
"github.com/ncruces/go-sqlite3/vfs/memdb"
2024-06-21 16:23:56 +01:00
)
func TestErrorTranslator(t *testing.T) {
// This is the example object for testing the unique constraint error
type Article struct {
ArticleNumber string `gorm:"unique"`
}
2024-09-20 23:07:20 +01:00
db, err := gorm.Open(Open(memdb.TestDB(t)), &gorm.Config{
2024-06-21 16:23:56 +01:00
Logger: logger.Default.LogMode(logger.Silent),
TranslateError: true})
if err != nil {
t.Errorf("Expected Open to succeed; got error: %v", err)
}
if db == nil {
t.Errorf("Expected db to be non-nil.")
}
err = db.AutoMigrate(&Article{})
if err != nil {
t.Errorf("Expected to migrate database models to succeed: %v", err)
}
err = db.Create(&Article{ArticleNumber: "A00000XX"}).Error
if err != nil {
t.Errorf("Expected first create to succeed: %v", err)
}
err = db.Create(&Article{ArticleNumber: "A00000XX"}).Error
if err == nil {
t.Errorf("Expected second create to fail.")
}
if err != gorm.ErrDuplicatedKey {
t.Errorf("Expected error from second create to be gorm.ErrDuplicatedKey: %v", err)
}
}