fix(cloudflare): clean up pointing member when zone domain is deleted

This commit is contained in:
ryan
2026-08-29 18:32:02 +08:00
parent 81739f9cb4
commit bbd7f72c2d
9 changed files with 104 additions and 5 deletions
+17 -1
View File
@@ -22,7 +22,7 @@ func setupZoneDB(t *testing.T) context.Context {
t.Helper()
conn, err := gorm.Open(sqlite.Open(":memory:"), &gorm.Config{DisableForeignKeyConstraintWhenMigrating: true})
require.NoError(t, err)
require.NoError(t, conn.AutoMigrate(&model.Zone{}, &model.ZoneDomain{}, &model.TLSCertificate{}))
require.NoError(t, conn.AutoMigrate(&model.Zone{}, &model.ZoneDomain{}, &model.TLSCertificate{}, &model.CFPointingGroup{}, &model.CFPointingMember{}))
db.SetDB(conn)
t.Cleanup(func() { db.SetDB(nil) })
return context.Background()
@@ -54,6 +54,22 @@ func TestDeleteDomainRejectsBoundRoute(t *testing.T) {
require.NoError(t, DeleteDomain(ctx, zone.ID, item.ID))
}
func TestDeleteDomainCleansUpCloudflareMember(t *testing.T) {
ctx := setupZoneDB(t)
zone, err := Create(ctx, Input{Domain: "example.com"})
require.NoError(t, err)
domain, err := CreateDomain(ctx, zone.ID, DomainInput{Domain: "api.example.com"})
require.NoError(t, err)
member := model.CFPointingMember{GroupID: 1, ZoneDomainID: domain.ID}
require.NoError(t, repository.CreateCFPointingMember(ctx, &member))
require.NoError(t, DeleteDomain(ctx, zone.ID, domain.ID))
_, err = repository.GetCFPointingMemberByZoneDomainID(ctx, domain.ID)
require.Error(t, err)
}
func TestLegacyImportUsesEffectiveTLDPlusOne(t *testing.T) {
root, err := zoneRoot("api.example.co.uk")
require.NoError(t, err)