# HG changeset patch # User Peter Sanchez # Date 1681770694 21600 # Mon Apr 17 16:31:34 2023 -0600 # Node ID 7e5853dbb62990b0701d33c32c587dc256232ad7 # Parent 3be8a1f1bf6d20e4cc7b146bf926c59505098975 Added test for FSFileMigration diff --git a/sql_test.go b/sql_test.go --- a/sql_test.go +++ b/sql_test.go @@ -4,6 +4,7 @@ "context" "database/sql" "fmt" + "os" "testing" _ "github.com/mattn/go-sqlite3" @@ -107,6 +108,28 @@ } }) + t.Run("file FS", func(t *testing.T) { + db := sqliteInMem(t) + sfs := os.DirFS("./") + migrations := []migrate.Migration{ + migrate.FSFileMigration("001_create_widgets", "testdata/widgets.sql", "", 0, sfs), + } + engine := migrate.NewEngine(db, migrations, migrate.QUESTION, false) + engine.Printf = func(format string, args ...interface{}) (int, error) { + t.Logf(format, args...) + return 0, nil + } + ctx := context.Background() + err := engine.Migrate(ctx, "", false) + if err != nil { + t.Fatalf("Migrate() err = %v; want nil", err) + } + _, err = db.Exec("INSERT INTO widgets (color, price) VALUES (?, ?)", "red", 1200) + if err != nil { + t.Fatalf("db.Exec() err = %v; want nil", err) + } + }) + t.Run("rollback", func(t *testing.T) { db := sqliteInMem(t) migrations := []migrate.Migration{