diff --git a/tests/error_translator_test.go b/tests/error_translator_test.go index d362a6cad2..cb3c15c72b 100644 --- a/tests/error_translator_test.go +++ b/tests/error_translator_test.go @@ -2,10 +2,13 @@ package tests_test import ( "errors" + "log" "testing" "gorm.io/gorm" "gorm.io/gorm/utils/tests" + + "github.com/microsoft/go-mssqldb" ) func TestDialectorWithErrorTranslatorSupport(t *testing.T) { @@ -39,7 +42,7 @@ func TestSupportedDialectorWithErrDuplicatedKey(t *testing.T) { t.Fatalf("failed to connect database, got error %v", err) } - var supportedDialectors map[string]bool = map[string]bool{"sqlite": true, "postgres": true, "mysql": true, "sqlserver": true} + supportedDialectors := map[string]bool{"sqlite": true, "postgres": true, "mysql": true, "sqlserver": true} if _, supported := supportedDialectors[db.Dialector.Name()]; !supported { return @@ -54,8 +57,16 @@ func TestSupportedDialectorWithErrDuplicatedKey(t *testing.T) { t.Fatalf("failed to create record: %v", err) } - // check for ErrDuplicatedKey error err = db.Create(&City{Name: "Istanbul"}).Error + + if db.Dialector.Name() == "sqlserver" { + if mssqlErr, ok := err.(mssql.Error); ok { + log.Println(mssqlErr, "saeid") + } + + log.Println(err, err.(mssql.Error).Number) + } + if !errors.Is(err, gorm.ErrDuplicatedKey) { t.Fatalf("expected err: %v got err: %v", gorm.ErrDuplicatedKey, err) } diff --git a/tests/go.mod b/tests/go.mod index b32b79c6f9..1fbae5a2b8 100644 --- a/tests/go.mod +++ b/tests/go.mod @@ -8,6 +8,7 @@ require ( github.com/jinzhu/now v1.1.5 github.com/lib/pq v1.10.8 github.com/mattn/go-sqlite3 v1.14.16 // indirect + github.com/microsoft/go-mssqldb v0.21.0 golang.org/x/crypto v0.8.0 // indirect gorm.io/driver/mysql v1.5.0 gorm.io/driver/postgres v1.5.0