Skip to content

Commit

Permalink
test(MigrateColumn): mock alter column to improve field compare (#5499)
Browse files Browse the repository at this point in the history
* test(MigrateColumn): mock alter column to improve field compare

* Update migrate_test.go

* Update migrate_test.go

* Update migrate_test.go

Co-authored-by: Jinzhu <wosmvp@gmail.com>
  • Loading branch information
a631807682 and jinzhu committed Dec 24, 2022
1 parent 1935eb0 commit 794edad
Showing 1 changed file with 45 additions and 2 deletions.
47 changes: 45 additions & 2 deletions tests/migrate_test.go
Expand Up @@ -11,7 +11,6 @@ import (
"time"

"gorm.io/driver/postgres"

"gorm.io/gorm"
"gorm.io/gorm/logger"
"gorm.io/gorm/schema"
Expand All @@ -29,7 +28,7 @@ func TestMigrate(t *testing.T) {
}

if err := DB.AutoMigrate(allModels...); err != nil {
t.Fatalf("Failed to auto migrate, but got error %v", err)
t.Fatalf("Failed to auto migrate, got error %v", err)
}

if tables, err := DB.Migrator().GetTables(); err != nil {
Expand Down Expand Up @@ -1123,6 +1122,50 @@ func TestMigrateArrayTypeModel(t *testing.T) {
AssertEqual(t, "integer[]", ct.DatabaseTypeName())
}

type mockMigrator struct {
gorm.Migrator
}

func (mm mockMigrator) AlterColumn(dst interface{}, field string) error {
err := mm.Migrator.AlterColumn(dst, field)
if err != nil {
return err
}
return fmt.Errorf("trigger alter column error, field: %s", field)
}

func TestMigrateDonotAlterColumn(t *testing.T) {
var wrapMockMigrator = func(m gorm.Migrator) mockMigrator {
return mockMigrator{
Migrator: m,
}
}
m := DB.Migrator()
mockM := wrapMockMigrator(m)

type NotTriggerUpdate struct {
ID uint
F1 uint16
F2 uint32
F3 int
F4 int64
F5 string
F6 float32
F7 float64
F8 time.Time
F9 bool
F10 []byte
}

var err error
err = mockM.DropTable(&NotTriggerUpdate{})
AssertEqual(t, err, nil)
err = mockM.AutoMigrate(&NotTriggerUpdate{})
AssertEqual(t, err, nil)
err = mockM.AutoMigrate(&NotTriggerUpdate{})
AssertEqual(t, err, nil)
}

func TestMigrateSameEmbeddedFieldName(t *testing.T) {
type UserStat struct {
GroundDestroyCount int
Expand Down

0 comments on commit 794edad

Please sign in to comment.