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") } }