33 lines
653 B
Go
33 lines
653 B
Go
package db
|
|
|
|
import (
|
|
"context"
|
|
"path/filepath"
|
|
"testing"
|
|
)
|
|
|
|
func TestOpenAndMigrate(t *testing.T) {
|
|
path := filepath.Join(t.TempDir(), "test.db")
|
|
d, err := Open(path)
|
|
if err != nil {
|
|
t.Fatalf("open: %v", err)
|
|
}
|
|
defer d.Close()
|
|
|
|
if err := d.Migrate(context.Background()); err != nil {
|
|
t.Fatalf("migrate: %v", err)
|
|
}
|
|
// Idempotent.
|
|
if err := d.Migrate(context.Background()); err != nil {
|
|
t.Fatalf("migrate twice: %v", err)
|
|
}
|
|
row := d.QueryRow(`SELECT COUNT(*) FROM schema_migrations`)
|
|
var n int
|
|
if err := row.Scan(&n); err != nil {
|
|
t.Fatalf("scan: %v", err)
|
|
}
|
|
if n < 1 {
|
|
t.Fatalf("expected migrations applied, got %d", n)
|
|
}
|
|
}
|