diff --git a/logos_delivery/messaging/rest_api/client.nim b/logos_delivery/messaging/rest_api/client.nim index c202b3f1d..c618849ca 100644 --- a/logos_delivery/messaging/rest_api/client.nim +++ b/logos_delivery/messaging/rest_api/client.nim @@ -50,6 +50,14 @@ proc messagingGetSendEventsByIdV1*( rest, endpoint: "/messaging/v1/events/send/{requestId}", meth: HttpMethod.MethodGet .} +# Raw variant: the typed client above cannot decode a non-2xx text error body, +# so status-code assertions (e.g. 404) use this string form. +proc messagingGetSendEventsByIdRawV1*( + requestId: string +): RestResponse[string] {. + rest, endpoint: "/messaging/v1/events/send/{requestId}", meth: HttpMethod.MethodGet +.} + proc messagingGetReceivedMessagesV1*(): RestResponse[seq[ReceivedMessageRecord]] {. rest, endpoint: "/messaging/v1/events/received", meth: HttpMethod.MethodGet .} diff --git a/tests/api/test_messaging_rest.nim b/tests/api/test_messaging_rest.nim index 8e86d912e..66c1816d8 100644 --- a/tests/api/test_messaging_rest.nim +++ b/tests/api/test_messaging_rest.nim @@ -11,6 +11,7 @@ import brokers/broker_context import logos_delivery import logos_delivery/messaging/rest_api/client as messaging_rest_client, + logos_delivery/waku/rest_api/endpoint/client, logos_delivery/waku/common/base64 import tools/confutils/cli_args import ../testlib/[wakucore, testasync] @@ -99,8 +100,7 @@ suite "Messaging REST API": brokerCtx, MessageSentEvent(requestId: reqA, messageHash: "0xaa") ) MessageErrorEvent.emit( - brokerCtx, - MessageErrorEvent(requestId: reqB, messageHash: "0xbb", error: "boom"), + brokerCtx, MessageErrorEvent(requestId: reqB, messageHash: "0xbb", error: "boom") ) await sleepAsync(settleDelay) @@ -113,8 +113,9 @@ suite "Messaging REST API": byIdResp.data.events.anyIt(it.kind == SendEventKind.Sent) byIdResp.data.events.anyIt(it.kind == SendEventKind.Propagated) - # Unknown / already-polled id → 404. - let missingResp = await client.messagingGetSendEventsByIdV1($reqA) + # Unknown / already-polled id → 404 (raw string client so the text error + # body decodes; the typed client would raise on a non-2xx body). + let missingResp = await client.messagingGetSendEventsByIdRawV1($reqA) check missingResp.status == 404 # GET all now returns only reqB (with its error), then clears.