Files

32 lines
1.0 KiB
Go
Raw Permalink Normal View History

2026-07-31 11:33:28 +08:00
package main
import (
"regexp"
2026-07-31 11:33:28 +08:00
"testing"
"github.com/DATA-DOG/go-sqlmock"
"gorm.io/driver/postgres"
2026-07-31 11:33:28 +08:00
"gorm.io/gorm"
)
func TestPrepareAdditiveMigrationsSkipsMissingLegacyTable(t *testing.T) {
sqlDatabase, mock, err := sqlmock.New()
2026-07-31 11:33:28 +08:00
if err != nil {
t.Fatalf("open sql mock: %v", err)
}
defer sqlDatabase.Close()
mock.ExpectQuery(regexp.QuoteMeta("SELECT count(*) FROM information_schema.tables WHERE table_schema = CURRENT_SCHEMA() AND table_name = $1 AND table_type = $2")).
WithArgs("gasorder_track_point", "BASE TABLE").
WillReturnRows(sqlmock.NewRows([]string{"count"}).AddRow(0))
databaseService, err := gorm.Open(postgres.New(postgres.Config{Conn: sqlDatabase}), &gorm.Config{})
if err != nil {
t.Fatalf("open postgres mock: %v", err)
2026-07-31 11:33:28 +08:00
}
if err := prepareAdditiveMigrations(databaseService, "postgres"); err != nil {
t.Fatalf("missing legacy table should not require a backfill: %v", err)
}
if err := mock.ExpectationsWereMet(); err != nil {
t.Fatalf("unexpected migration query: %v", err)
}
2026-07-31 11:33:28 +08:00
}