2026-07-31 11:33:28 +08:00
package main
import (
2026-08-03 16:03:44 +08:00
"regexp"
2026-07-31 11:33:28 +08:00
"testing"
2026-08-03 16:03:44 +08:00
"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 ) {
2026-08-03 16:03:44 +08:00
sqlDatabase , mock , err := sqlmock . New ( )
2026-07-31 11:33:28 +08:00
if err != nil {
2026-08-03 16:03:44 +08:00
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 )
}
2026-08-03 16:03:44 +08:00
if err := mock . ExpectationsWereMet ( ) ; err != nil {
t . Fatalf ( "unexpected migration query: %v" , err )
}
2026-07-31 11:33:28 +08:00
}