github.com/scraniel/migrate@v0.0.0-20230320185700-339088f36cee/database/testing/migrate_testing.go (about) 1 // Package testing has the database tests. 2 // All database drivers must pass the Test function. 3 // This lives in it's own package so it stays a test dependency. 4 package testing 5 6 import ( 7 "testing" 8 ) 9 10 import ( 11 "github.com/golang-migrate/migrate/v4" 12 ) 13 14 // TestMigrate runs integration-tests between the Migrate layer and database implementations. 15 func TestMigrate(t *testing.T, m *migrate.Migrate) { 16 TestMigrateUp(t, m) 17 TestMigrateDrop(t, m) 18 } 19 20 // Regression test for preventing a regression for #164 https://github.com/golang-migrate/migrate/pull/173 21 // Similar to TestDrop(), but tests the dropping mechanism through the Migrate logic instead, to check for 22 // double-locking during the Drop logic. 23 func TestMigrateDrop(t *testing.T, m *migrate.Migrate) { 24 if err := m.Drop(); err != nil { 25 t.Fatal(err) 26 } 27 } 28 29 func TestMigrateUp(t *testing.T, m *migrate.Migrate) { 30 t.Log("UP") 31 if err := m.Up(); err != nil { 32 t.Fatal(err) 33 } 34 }