logos-messaging-go-bindings/tests/wakunode_rest/test_rest_debug_serdes.nim
Ivan Folgueira Bande 2f6de9187f Squashed 'third-party/nwaku/' content from commit d94cb7c7
git-subtree-dir: third-party/nwaku
git-subtree-split: d94cb7c73631ffd4b934839ba58bc622d331a135
2025-10-02 11:52:12 +02:00

35 lines
970 B
Nim

{.used.}
import results, stew/byteutils, testutils/unittests, json_serialization
import waku/waku_api/rest/serdes, waku/waku_api/rest/debug/types
suite "Waku v2 REST API - Debug - serialization":
suite "DebugWakuInfo - decode":
test "optional field is not provided":
# Given
let jsonBytes = toBytes("""{ "listenAddresses":["123"] }""")
# When
let res = decodeFromJsonBytes(DebugWakuInfo, jsonBytes, requireAllFields = true)
# Then
require(res.isOk())
let value = res.get()
check:
value.listenAddresses == @["123"]
value.enrUri.isNone()
suite "DebugWakuInfo - encode":
test "optional field is none":
# Given
let data = DebugWakuInfo(listenAddresses: @["GO"], enrUri: none(string))
# When
let res = encodeIntoJsonBytes(data)
# Then
require(res.isOk())
let value = res.get()
check:
value == toBytes("""{"listenAddresses":["GO"]}""")