Files
mcns/internal/db/migrate_test.go
Kyle Isom 089989ba77 Add migration idempotency test
Verifies that calling Migrate() twice succeeds without error and that
seed data (2 zones, 12 records) is present exactly once.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 21:19:51 -07:00

48 lines
1.0 KiB
Go

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