package db import ( "path/filepath" "testing" ) func TestOpenAndMigrate(t *testing.T) { dir := t.TempDir() path := filepath.Join(dir, "test.db") database, err := Open(path) if err != nil { t.Fatalf("Open: %v", err) } defer database.Close() if err := Migrate(database); err != nil { t.Fatalf("Migrate: %v", err) } // Verify tables exist. tables := []string{"seal_config", "barrier_entries", "schema_migrations"} for _, table := range tables { var name string err := database.QueryRow( "SELECT name FROM sqlite_master WHERE type='table' AND name=?", table).Scan(&name) if err != nil { t.Errorf("table %q not found: %v", table, err) } } // Migration should be idempotent. if err := Migrate(database); err != nil { t.Fatalf("second Migrate: %v", err) } // Check migration version. var version int database.QueryRow("SELECT MAX(version) FROM schema_migrations").Scan(&version) if version != 1 { t.Errorf("migration version: got %d, want 1", version) } }