diff options
Diffstat (limited to 'fs_test.go')
| -rw-r--r-- | fs_test.go | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/fs_test.go b/fs_test.go new file mode 100644 index 0000000..3993163 --- /dev/null +++ b/fs_test.go @@ -0,0 +1,50 @@ +// +build go1.16 + +package migrate + +import ( + "database/sql" + "embed" + "testing" + + _ "github.com/mattn/go-sqlite3" +) + +func TestFSMigrator(t *testing.T) { + + //go:embed testdata/*.sql + var testdata embed.FS + + db, err := sql.Open("sqlite3", testDB) + if err != nil { + t.Fatalf("DB setup failed: %v", err) + } + defer db.Close() + + migrator, err := NewFSMigrator(db, testdata) + if err != nil { + t.Fatal(err) + } + + if v, _ := migrator.Version(); v != NilVersion { + t.Errorf("expected migration version NilVersion, got %d", v) + } + + if c := len(migrator.migrations); c != 2 { + t.Errorf("expected migration count = 2, got %d", c) + } + + err = migrator.MigrateTo(1) + if err != nil { + t.Fatalf("Migrator.MigrateTo(3) failed: %v", err) + } + + v, err := migrator.Version() + if err != nil { + t.Fatalf("Migrator.Version() failed: %v", err) + } + + if int(v) != len(migrator.migrations)-1 { + t.Errorf("expected migration version %d, got %d", len(migrator.migrations)-1, v) + } +} |
