package db import ( "path/filepath" "testing" ) func TestMigrateIdempotent(t *testing.T) { dir := t.TempDir() database, err := Open(filepath.Join(dir, "test.db")) if err != nil { t.Fatalf("open db: %v", err) } t.Cleanup(func() { _ = database.Close() }) if err := database.Migrate(); err != nil { t.Fatalf("first migrate: %v", err) } if err := database.Migrate(); err != nil { t.Fatalf("second migrate: %v", err) } // Verify seed data is present exactly once. zones, err := database.ListZones() if err != nil { t.Fatalf("list zones: %v", err) } if len(zones) != 2 { t.Fatalf("got %d zones, want 2", len(zones)) } records, err := database.ListRecords("svc.mcp.metacircular.net", "", "") if err != nil { t.Fatalf("list records: %v", err) } if len(records) != 8 { t.Fatalf("got %d svc records, want 8", len(records)) } records, err = database.ListRecords("mcp.metacircular.net", "", "") if err != nil { t.Fatalf("list records: %v", err) } if len(records) != 4 { t.Fatalf("got %d mcp records, want 4", len(records)) } }