fix(migrate_test.go):change GetTables Method Test,use intersection

This commit is contained in:
dino.ma 2021-11-13 13:29:55 +08:00
parent a2a3b7038a
commit c26d0f889b
2 changed files with 9 additions and 2 deletions

View File

@ -5,6 +5,7 @@ go 1.14
require ( require (
github.com/google/uuid v1.3.0 github.com/google/uuid v1.3.0
github.com/jinzhu/now v1.1.2 github.com/jinzhu/now v1.1.2
github.com/juliangruber/go-intersect v1.1.0 // indirect
github.com/lib/pq v1.10.4 github.com/lib/pq v1.10.4
gorm.io/driver/mysql v1.1.3 gorm.io/driver/mysql v1.1.3
gorm.io/driver/postgres v1.2.2 gorm.io/driver/postgres v1.2.2

View File

@ -6,6 +6,7 @@ import (
"testing" "testing"
"time" "time"
"github.com/juliangruber/go-intersect"
"gorm.io/gorm" "gorm.io/gorm"
. "gorm.io/gorm/utils/tests" . "gorm.io/gorm/utils/tests"
) )
@ -14,7 +15,6 @@ func TestMigrate(t *testing.T) {
allModels := []interface{}{&User{}, &Account{}, &Pet{}, &Company{}, &Toy{}, &Language{}} allModels := []interface{}{&User{}, &Account{}, &Pet{}, &Company{}, &Toy{}, &Language{}}
rand.Seed(time.Now().UnixNano()) rand.Seed(time.Now().UnixNano())
rand.Shuffle(len(allModels), func(i, j int) { allModels[i], allModels[j] = allModels[j], allModels[i] }) rand.Shuffle(len(allModels), func(i, j int) { allModels[i], allModels[j] = allModels[j], allModels[i] })
DB.Migrator().DropTable("user_speaks", "user_friends", "ccc") DB.Migrator().DropTable("user_speaks", "user_friends", "ccc")
if err := DB.Migrator().DropTable(allModels...); err != nil { if err := DB.Migrator().DropTable(allModels...); err != nil {
@ -28,7 +28,13 @@ func TestMigrate(t *testing.T) {
if tableErr != nil { if tableErr != nil {
t.Fatalf("Failed to get database all tables, but got error %v", tableErr) t.Fatalf("Failed to get database all tables, but got error %v", tableErr)
} }
for _, m := range tableList { //get auto Migrator create tables and databases tables intersection
intersectList := intersect.Simple(tableList, []string{"users", "accounts", "pets", "companies", "toys", "languages"})
if len(intersectList) != len(allModels) {
t.Fatalf("Failed to get auto Migrator create tables and databases tables intersection nums not eq allModels %d intersectList %d", len(allModels), len(intersectList))
}
for _, m := range allModels {
if !DB.Migrator().HasTable(m) { if !DB.Migrator().HasTable(m) {
t.Fatalf("Failed to create table for %#v---", m) t.Fatalf("Failed to create table for %#v---", m)
} }