From 8002e4d98a9f3f8118aeaf63358398dbf918467e Mon Sep 17 00:00:00 2001 From: Lunny Xiao Date: Sun, 27 Jul 2025 11:20:08 -0700 Subject: [PATCH] fix test --- tests/sync_test.go | 44 +++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 41 insertions(+), 3 deletions(-) diff --git a/tests/sync_test.go b/tests/sync_test.go index 907e0a5e..23d57183 100644 --- a/tests/sync_test.go +++ b/tests/sync_test.go @@ -11,6 +11,7 @@ import ( "xorm.io/xorm/schemas" ) +// Test Sync with unique index and normal index type TestSync1 struct { Id int64 ClassId int64 `xorm:"index"` @@ -29,9 +30,46 @@ func (TestSync2) TableName() string { return "test_sync" } -func TestSync(t *testing.T) { +func Test_SyncChangeIndexType(t *testing.T) { assert.NoError(t, testEngine.Sync(new(TestSync1))) + tables, err := testEngine.DBMetas() + assert.NoError(t, err) + var testTable *schemas.Table + for _, table := range tables { + if table.Name == "test_sync" { + testTable = table + break + } + } + assert.NotNil(t, testTable) + assert.Len(t, testTable.Columns(), 2) + + assert.Len(t, testTable.Indexes, 1) + index := testTable.Indexes["class_id"] + assert.NotNil(t, index) + assert.Len(t, index.Cols, 1) + assert.Equal(t, "class_id", index.Cols[0]) + assert.Equal(t, schemas.IndexType, index.Type) + assert.NoError(t, testEngine.Sync(new(TestSync2))) + tables, err = testEngine.DBMetas() + assert.NoError(t, err) + testTable = nil + for _, table := range tables { + if table.Name == "test_sync" { + testTable = table + break + } + } + assert.NotNil(t, testTable) + assert.Len(t, testTable.Columns(), 2) + + assert.Len(t, testTable.Indexes, 1) + index = testTable.Indexes["class_id"] + assert.NotNil(t, index) + assert.Len(t, index.Cols, 1) + assert.Equal(t, "class_id", index.Cols[0]) + assert.Equal(t, schemas.UniqueType, index.Type) } // Test Sync with varchar size changed @@ -183,7 +221,7 @@ func Test_SyncVarcharDefaultChange(t *testing.T) { } assert.NotNil(t, testTable) assert.Len(t, testTable.Columns(), 2) - assert.Equal(t, "1", testTable.GetColumn("name").Default) + assert.Equal(t, "'1'", testTable.GetColumn("name").Default) assert.NoError(t, testEngine.Sync(new(TestSync8))) @@ -198,5 +236,5 @@ func Test_SyncVarcharDefaultChange(t *testing.T) { } assert.NotNil(t, testTable) assert.Len(t, testTable.Columns(), 2) - assert.Equal(t, "2", testTable.GetColumn("name").Default) + assert.Equal(t, "'2'", testTable.GetColumn("name").Default) }