kra-oa/app/system/data/migrations_test.go

42 lines
1.0 KiB
Go

package data
import (
"testing"
"kra/pkg/database/migration"
)
func TestMigrateAllRunsModuleSchemasWithoutBootstrapSeed(t *testing.T) {
db, err := openWithDriver("sqlite", "file:"+t.Name()+"?mode=memory&cache=shared")
if err != nil {
t.Fatal(err)
}
if err = migrateAll(db); err != nil {
t.Fatal(err)
}
if err = migrateAll(db); err != nil {
t.Fatalf("second migration run: %v", err)
}
for _, table := range []string{"sys_integration_configs", "sys_users", "sys_base_menus", "pay_orders"} {
if !db.Migrator().HasTable(table) {
t.Fatalf("migration did not create %s", table)
}
}
var versions int64
if err = db.Table(migration.TableName).Count(&versions).Error; err != nil {
t.Fatal(err)
}
if versions != 4 {
t.Fatalf("migration versions = %d, want 4", versions)
}
for _, table := range []string{"sys_users", "sys_base_menus", "sys_apis"} {
var count int64
if err = db.Table(table).Count(&count).Error; err != nil {
t.Fatal(err)
}
if count != 0 {
t.Fatalf("migration seeded %s: rows=%d", table, count)
}
}
}