mirror of
https://github.com/logos-messaging/logos-delivery.git
synced 2026-07-20 03:30:22 +00:00
42 lines
1.4 KiB
Nim
42 lines
1.4 KiB
Nim
{.used.}
|
|
|
|
import results, testutils/unittests
|
|
import
|
|
logos_delivery/waku/waku_lightpush/rpc,
|
|
logos_delivery/waku/waku_lightpush/rpc_codec,
|
|
logos_delivery/waku/waku_core
|
|
|
|
# response: requestId "x" (0a 01 78) + statusCode 200 in field 10 (50 c8 01)
|
|
const StatusResponse200 = @[byte 0x0a, 0x01, 0x78, 0x50, 0xc8, 0x01]
|
|
|
|
suite "Waku Lightpush v3 - codec wire format":
|
|
test "LightPushResponse emits statusCode (distinct uint32)":
|
|
let resp = LightPushResponse(
|
|
requestId: "x",
|
|
statusCode: LightPushStatusCode(200),
|
|
statusDesc: Opt.none(string),
|
|
relayPeerCount: Opt.none(uint32),
|
|
)
|
|
check resp.encode() == StatusResponse200
|
|
|
|
test "LightPushResponse round-trips with all fields":
|
|
let resp = LightPushResponse(
|
|
requestId: "req-1",
|
|
statusCode: LightPushStatusCode(429),
|
|
statusDesc: Opt.some("too many"),
|
|
relayPeerCount: Opt.some(3'u32),
|
|
)
|
|
let decoded = LightPushResponse.decode(resp.encode())
|
|
check decoded.isOk()
|
|
check decoded.get() == resp
|
|
|
|
test "LightpushRequest round-trips with nested WakuMessage":
|
|
let req = LightpushRequest(
|
|
requestId: "req-2",
|
|
pubSubTopic: Opt.some("/waku/2/rs/0/0"),
|
|
message: WakuMessage(payload: @[byte 1, 2, 3], contentTopic: "/a/1/b/c"),
|
|
)
|
|
let decoded = LightpushRequest.decode(req.encode())
|
|
check decoded.isOk()
|
|
check decoded.get() == req
|