aboutsummaryrefslogtreecommitdiff
path: root/fs_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'fs_test.go')
-rw-r--r--fs_test.go50
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)
+ }
+}