fix: harden upstream and downstream receipt delivery

This commit is contained in:
hectorzhao
2026-07-25 23:32:13 +08:00
parent 5018167696
commit 54617c927e
18 changed files with 1797 additions and 779 deletions
+8 -3
View File
@@ -15,7 +15,7 @@ import (
func TestHandleCMPP2DeliverReceiptPostsReceiptEvent(t *testing.T) {
events := make(chan queue.ReceiptEvent, 1)
api := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
if r.URL.Path != "/gateway/events/receipt" {
if r.URL.Path != "/gateway/events/receipt/intake" {
t.Fatalf("unexpected path: %s", r.URL.Path)
}
var event queue.ReceiptEvent
@@ -58,12 +58,14 @@ func TestHandleCMPP2DeliverReceiptPostsReceiptEvent(t *testing.T) {
},
},
}
conn.handleDeliver(deliverPacketFromCMPP2(&cmpp.Cmpp2DeliverReqPkt{
if err := conn.handleDeliver(deliverPacketFromCMPP2(&cmpp.Cmpp2DeliverReqPkt{
SeqId: 7,
MsgId: 999,
RegisterDelivery: 1,
MsgContent: string(payload),
}))
})); err != nil {
t.Fatalf("handle receipt: %v", err)
}
select {
case event := <-events:
@@ -82,6 +84,9 @@ func TestHandleCMPP2DeliverReceiptPostsReceiptEvent(t *testing.T) {
if event.ReceiptStatus != "delivered" || event.RawStatus != "DELIVRD" {
t.Fatalf("unexpected receipt status: %+v", event)
}
if event.ConnectionID != "channel-1-0" {
t.Fatalf("ConnectionID = %q, want channel-1-0", event.ConnectionID)
}
case <-time.After(time.Second):
t.Fatal("timed out waiting for receipt event")
}