41 lines
968 B
Go
41 lines
968 B
Go
package postgres
|
|
|
|
import (
|
|
"context"
|
|
"os"
|
|
"testing"
|
|
"time"
|
|
)
|
|
|
|
func TestMigrationsAndStore(t *testing.T) {
|
|
databaseURL := os.Getenv("DRIVE_TEST_DATABASE_URL")
|
|
if databaseURL == "" {
|
|
t.Skip("DRIVE_TEST_DATABASE_URL is not set")
|
|
}
|
|
|
|
if err := Migrate(databaseURL); err != nil {
|
|
t.Fatalf("first migration run failed: %v", err)
|
|
}
|
|
if err := Migrate(databaseURL); err != nil {
|
|
t.Fatalf("second migration run failed: %v", err)
|
|
}
|
|
|
|
ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
|
|
defer cancel()
|
|
store, err := Open(ctx, databaseURL)
|
|
if err != nil {
|
|
t.Fatalf("Open returned an error: %v", err)
|
|
}
|
|
defer store.Close()
|
|
|
|
if err := store.DatabaseHealth(ctx); err != nil {
|
|
t.Fatalf("DatabaseHealth returned an error: %v", err)
|
|
}
|
|
initialized, err := store.OwnerExists(ctx)
|
|
if err != nil {
|
|
t.Fatalf("OwnerExists returned an error: %v", err)
|
|
}
|
|
if initialized {
|
|
t.Fatal("OwnerExists = true on a fresh database, want false")
|
|
}
|
|
}
|