mirror of https://gerrit.hackerspace.pl/hscloud
39 lines
778 B
Go
39 lines
778 B
Go
package sql
|
|
|
|
import (
|
|
"testing"
|
|
|
|
_ "github.com/golang-migrate/migrate/v4/database/sqlite3"
|
|
|
|
"code.hackerspace.pl/hscloud/go/mirko/tests/sql/migrations"
|
|
)
|
|
|
|
// TestOkay goes up and down fully through migrations.
|
|
func TestOkay(t *testing.T) {
|
|
m, err := migrations.New("sqlite3://:memory:")
|
|
if err != nil {
|
|
t.Fatalf("migrations.New: %v", err)
|
|
}
|
|
|
|
err = m.Up()
|
|
if err != nil {
|
|
t.Fatalf("m.Up() failed: %v", err)
|
|
}
|
|
|
|
vers, dirty, err := m.Version()
|
|
if err != nil {
|
|
t.Fatalf("m.Version() failed: %v", err)
|
|
}
|
|
if dirty {
|
|
t.Errorf("database migration shouldn't be dirty")
|
|
}
|
|
if want, got := uint(1564669988), vers; want != got {
|
|
t.Errorf("got database version %d, want %d", want, got)
|
|
}
|
|
|
|
err = m.Down()
|
|
if err != nil {
|
|
t.Fatalf("m.Down() failed: %v", err)
|
|
}
|
|
}
|