aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorfelix <felix>2018-06-25 03:30:04 +0000
committerfelix <felix>2018-06-25 03:30:04 +0000
commit7b85630b672cc220cc3a4201e9554502e98ef10e (patch)
tree643a0a32a6a297b3365032313eefb05e9575ea04
parent6e0dacb24add46804b4093d483b77d433a958b9c (diff)
downloadmigrate-7b85630b672cc220cc3a4201e9554502e98ef10e.tar.gz
migrate-7b85630b672cc220cc3a4201e9554502e98ef10e.tar.bz2
Add file tests
-rw-r--r--file.go3
-rw-r--r--file_test.go43
-rw-r--r--migrate_test.go4
-rw-r--r--testdata/002_description2.sql1
-rw-r--r--testdata/01_description.sql1
5 files changed, 50 insertions, 2 deletions
diff --git a/file.go b/file.go
index ecf8932..5687311 100644
--- a/file.go
+++ b/file.go
@@ -120,5 +120,8 @@ func readFiles(uri string) (migrations []Migration, err error) {
seen[v] = true
}
}
+ if len(migrations) == 0 {
+ return nil, fmt.Errorf("no migrations found")
+ }
return migrations, nil
}
diff --git a/file_test.go b/file_test.go
new file mode 100644
index 0000000..dfadb27
--- /dev/null
+++ b/file_test.go
@@ -0,0 +1,43 @@
+package migrate
+
+import (
+ "database/sql"
+ "testing"
+
+ _ "github.com/mattn/go-sqlite3"
+)
+
+func TestFileMigrator(t *testing.T) {
+ db, err := sql.Open("sqlite3", testDB)
+ if err != nil {
+ t.Fatalf("DB setup failed: %v", err)
+ }
+ defer db.Close()
+
+ migrator, err := NewFileMigrator(db, "file://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)
+ }
+}
diff --git a/migrate_test.go b/migrate_test.go
index dfe86de..17f1942 100644
--- a/migrate_test.go
+++ b/migrate_test.go
@@ -65,7 +65,7 @@ func TestMigrate(t *testing.T) {
err = migrator.MigrateTo(3)
if err != nil {
- t.Fatalf("Migrator.Migrate() failed: %v", err)
+ t.Fatalf("Migrator.MigrateTo(3) failed: %v", err)
}
v, err = migrator.Version()
@@ -79,7 +79,7 @@ func TestMigrate(t *testing.T) {
err = migrator.MigrateTo(4)
if err == nil {
- t.Fatalf("Migrator.Migrate(4) should have failed")
+ t.Fatalf("Migrator.MigrateTo(4) should have failed")
}
v, err = migrator.Version()
diff --git a/testdata/002_description2.sql b/testdata/002_description2.sql
new file mode 100644
index 0000000..1d466aa
--- /dev/null
+++ b/testdata/002_description2.sql
@@ -0,0 +1 @@
+insert into test1 (pk) values (1)
diff --git a/testdata/01_description.sql b/testdata/01_description.sql
new file mode 100644
index 0000000..9707142
--- /dev/null
+++ b/testdata/01_description.sql
@@ -0,0 +1 @@
+create table if not exists test1 (pk bigint not null primary key);