From c26d0f889bcc53672106965b7f69907afc2bb2a7 Mon Sep 17 00:00:00 2001 From: "dino.ma" Date: Sat, 13 Nov 2021 13:29:55 +0800 Subject: [PATCH] fix(migrate_test.go):change GetTables Method Test,use intersection --- tests/go.mod | 1 + tests/migrate_test.go | 10 ++++++++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/tests/go.mod b/tests/go.mod index e321d3d8..20b6076d 100644 --- a/tests/go.mod +++ b/tests/go.mod @@ -5,6 +5,7 @@ go 1.14 require ( github.com/google/uuid v1.3.0 github.com/jinzhu/now v1.1.2 + github.com/juliangruber/go-intersect v1.1.0 // indirect github.com/lib/pq v1.10.4 gorm.io/driver/mysql v1.1.3 gorm.io/driver/postgres v1.2.2 diff --git a/tests/migrate_test.go b/tests/migrate_test.go index dab3bb68..670e0500 100644 --- a/tests/migrate_test.go +++ b/tests/migrate_test.go @@ -6,6 +6,7 @@ import ( "testing" "time" + "github.com/juliangruber/go-intersect" "gorm.io/gorm" . "gorm.io/gorm/utils/tests" ) @@ -14,7 +15,6 @@ func TestMigrate(t *testing.T) { allModels := []interface{}{&User{}, &Account{}, &Pet{}, &Company{}, &Toy{}, &Language{}} rand.Seed(time.Now().UnixNano()) rand.Shuffle(len(allModels), func(i, j int) { allModels[i], allModels[j] = allModels[j], allModels[i] }) - DB.Migrator().DropTable("user_speaks", "user_friends", "ccc") if err := DB.Migrator().DropTable(allModels...); err != nil { @@ -28,7 +28,13 @@ func TestMigrate(t *testing.T) { if tableErr != nil { 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) { t.Fatalf("Failed to create table for %#v---", m) }