feat: add generic queue and subscription retirement

This commit is contained in:
2026-09-27 14:39:49 +08:00
parent d54bdd9847
commit c9e877c3f7
53 changed files with 1013 additions and 88 deletions

View File

@@ -177,5 +177,22 @@ func TestIntegrationSubscriptionManagementSDK(t *testing.T) {
if err != nil || current.PendingCount != 0 || current.Revision != resumed.Subscription.Revision {
t.Fatal("SDK pending count or config version", err)
}
retireKey := workerTestID(t)
retireInput := RetireResourceRequest{ExpectedRevision: current.Revision, Reason: "completed SDK subscription regression"}
retired, err := api.RetireSubscription(ctx, sub.ID, retireKey, retireInput)
if err != nil || retired.Subscription.RetiredAt == nil {
t.Fatal("SDK retire subscription", err)
}
repeated, err := api.RetireSubscription(ctx, sub.ID, retireKey, retireInput)
if err != nil || !repeated.Deduplicated {
t.Fatal("SDK retire replay", err)
}
if _, err = api.GetEventDelivery(ctx, sub.ID, expired.ID); err != nil {
t.Fatal("retired delivery history", err)
}
queueRetired, err := api.RetireQueue(ctx, queue.Queue.ID, workerTestID(t), RetireResourceRequest{ExpectedRevision: queue.Queue.Revision, Reason: "completed SDK queue regression"})
if err != nil || queueRetired.Queue.RetiredAt == nil {
t.Fatal("SDK retire queue", err)
}
t.Log("management SDK exercised create/get/list/control/detail/expired retry with a real 30-second delivery lease")
}