#10: implement Cloudflare DNS automation engine (13 records & system aliases)
This commit is contained in:
1 parent
b08bce71bb
commit
10836ea98f
14 files changed
+1043
-2
No files matched your search
@@ -0,0 +1,41 @@
|
||||
package postgres
|
||||
|
||||
import (
|
||||
"context"
|
||||
"os"
|
||||
"testing"
|
||||
|
||||
"github.com/google/uuid"
|
||||
)
|
||||
|
||||
func TestAliasRepository_EnsureSystemAliases(t *testing.T) {
|
||||
dbURL := os.Getenv("TEST_DATABASE_URL")
|
||||
if dbURL == "" {
|
||||
t.Skip("TEST_DATABASE_URL not set - skipping Postgres integration test")
|
||||
}
|
||||
|
||||
ctx := context.Background()
|
||||
pool, err := NewPool(ctx, dbURL)
|
||||
if err != nil {
|
||||
t.Fatalf("connect pool: %v", err)
|
||||
}
|
||||
defer pool.Close()
|
||||
|
||||
domainID := uuid.New()
|
||||
if _, err := pool.Exec(ctx, `INSERT INTO domains (id, name, punycode_name) VALUES ($1, 'dnsalias.test', 'dnsalias.test')`, domainID); err != nil {
|
||||
t.Fatalf("seed domain: %v", err)
|
||||
}
|
||||
defer pool.Exec(ctx, `DELETE FROM domains WHERE id = $1`, domainID)
|
||||
|
||||
repo := NewAliasRepository(pool)
|
||||
|
||||
if err := repo.EnsureSystemAliases(ctx, "dnsalias.test", "admin@dnsalias.test"); err != nil {
|
||||
t.Fatalf("EnsureSystemAliases: %v", err)
|
||||
}
|
||||
|
||||
// Verify postmaster, abuse, dmarc, tlsrpt aliases exist
|
||||
var count int
|
||||
if err := pool.QueryRow(ctx, `SELECT count(*) FROM aliases WHERE domain_id = $1 AND is_system = true`, domainID).Scan(&count); err != nil || count != 4 {
|
||||
t.Fatalf("expected 4 system aliases in DB, got count=%d, err=%v", count, err)
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user