mirror of
https://github.com/logos-messaging/logos-delivery.git
synced 2026-07-26 14:33:27 +00:00
Align Store eligibility N8 tests with demo e2e reference wire.
Use the Step 17 query shape and 138-byte canonical hex matching lez-payment-streams-core n8_canonical_wire_hex.
This commit is contained in:
parent
32fa7dbefd
commit
83785aa472
@ -4,29 +4,18 @@ import std/options, testutils/unittests
|
|||||||
import logos_delivery/waku/[common/paging, waku_core, waku_store/common, waku_store/eligibility_canonical]
|
import logos_delivery/waku/[common/paging, waku_core, waku_store/common, waku_store/eligibility_canonical]
|
||||||
|
|
||||||
const N8ReferenceWireHex =
|
const N8ReferenceWireHex =
|
||||||
"2f4c455a2f76302e312f53746f7265456c69676962696c6974792f0000000000050000007265712d3101010d0000002f77616b752f322f746f70696301000000140000002f6d792d6170702f312f636861742f70726f746f010a000000000000000002000000010101010101010101010101010101010101010101010101010101010101010102020202020202020202020202020202020202020202020202020202020202020001016400000000000000"
|
"2f4c455a2f76302e312f53746f7265456c69676962696c6974792f0000000000050000007265712d3101010e0000002f77616b752f322f72732f302f31010000002c0000002f6c657a2d7061796d656e742d73747265616d732f312f6532652d656c69676962696c6974792f70726f746f010a0000000000000000000000000001016400000000000000"
|
||||||
|
|
||||||
procSuite "Waku Store - eligibility canonical (N8)":
|
procSuite "Waku Store - eligibility canonical (N8)":
|
||||||
test "matches lez-payment-streams-core n8_canonical_wire_hex reference":
|
test "matches lez-payment-streams-core n8_canonical_wire_hex reference":
|
||||||
let hash1 = block:
|
|
||||||
var h: WakuMessageHash
|
|
||||||
for i in 0 .. 31:
|
|
||||||
h[i] = byte(1)
|
|
||||||
h
|
|
||||||
let hash2 = block:
|
|
||||||
var h: WakuMessageHash
|
|
||||||
for i in 0 .. 31:
|
|
||||||
h[i] = byte(2)
|
|
||||||
h
|
|
||||||
|
|
||||||
let query = StoreQueryRequest(
|
let query = StoreQueryRequest(
|
||||||
requestId: "req-1",
|
requestId: "req-1",
|
||||||
includeData: true,
|
includeData: true,
|
||||||
pubsubTopic: some("/waku/2/topic"),
|
pubsubTopic: some("/waku/2/rs/0/1"),
|
||||||
contentTopics: @["/my-app/1/chat/proto"],
|
contentTopics: @["/lez-payment-streams/1/e2e-eligibility/proto"],
|
||||||
startTime: some(Timestamp(10)),
|
startTime: some(Timestamp(10)),
|
||||||
endTime: none(Timestamp),
|
endTime: none(Timestamp),
|
||||||
messageHashes: @[hash1, hash2],
|
messageHashes: @[],
|
||||||
paginationCursor: none(WakuMessageHash),
|
paginationCursor: none(WakuMessageHash),
|
||||||
paginationForward: PagingDirection.FORWARD,
|
paginationForward: PagingDirection.FORWARD,
|
||||||
paginationLimit: some(uint64(100)),
|
paginationLimit: some(uint64(100)),
|
||||||
|
|||||||
@ -7,25 +7,9 @@ import logos_delivery/waku/waku_core, logos_delivery/waku/waku_store/[
|
|||||||
import ../../library/store_eligibility/store_query_json
|
import ../../library/store_eligibility/store_query_json
|
||||||
|
|
||||||
const N8ReferenceWireHex =
|
const N8ReferenceWireHex =
|
||||||
"2f4c455a2f76302e312f53746f7265456c69676962696c6974792f0000000000050000007265712d3101010d0000002f77616b752f322f746f70696301000000140000002f6d792d6170702f312f636861742f70726f746f010a000000000000000002000000010101010101010101010101010101010101010101010101010101010101010102020202020202020202020202020202020202020202020202020202020202020001016400000000000000"
|
"2f4c455a2f76302e312f53746f7265456c69676962696c6974792f0000000000050000007265712d3101010e0000002f77616b752f322f72732f302f31010000002c0000002f6c657a2d7061796d656e742d73747265616d732f312f6532652d656c69676962696c6974792f70726f746f010a0000000000000000000000000001016400000000000000"
|
||||||
|
|
||||||
const E2eQueryJson = """
|
const N8ReferenceQueryJson = """
|
||||||
{
|
|
||||||
"requestId": "req-1",
|
|
||||||
"includeData": true,
|
|
||||||
"pubsubTopic": "/waku/2/topic",
|
|
||||||
"contentTopics": ["/my-app/1/chat/proto"],
|
|
||||||
"timeStart": 10,
|
|
||||||
"paginationForward": true,
|
|
||||||
"paginationLimit": 100,
|
|
||||||
"messageHashes": [
|
|
||||||
"0101010101010101010101010101010101010101010101010101010101010101",
|
|
||||||
"0202020202020202020202020202020202020202020202020202020202020202"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
"""
|
|
||||||
|
|
||||||
const Step17E2eQueryJson = """
|
|
||||||
{
|
{
|
||||||
"requestId": "req-1",
|
"requestId": "req-1",
|
||||||
"includeData": true,
|
"includeData": true,
|
||||||
@ -38,42 +22,22 @@ const Step17E2eQueryJson = """
|
|||||||
}
|
}
|
||||||
"""
|
"""
|
||||||
|
|
||||||
const Step17N8ReferenceWireHex =
|
|
||||||
"2f4c455a2f76302e312f53746f7265456c69676962696c6974792f0000000000050000007265712d3101010e0000002f77616b752f322f72732f302f31010000002c0000002f6c657a2d7061796d656e742d73747265616d732f312f6532652d656c69676962696c6974792f70726f746f010a0000000000000000000000000001016400000000000000"
|
|
||||||
|
|
||||||
procSuite "Waku Store - store query JSON (N8)":
|
procSuite "Waku Store - store query JSON (N8)":
|
||||||
test "E2E query JSON matches n8_canonical_wire_hex reference":
|
test "reference query JSON matches n8_canonical_wire_hex":
|
||||||
let parsed = parseJson(E2eQueryJson)
|
let parsed = parseJson(N8ReferenceQueryJson)
|
||||||
let reqRes = storeQueryRequestFromJson(parsed)
|
let reqRes = storeQueryRequestFromJson(parsed)
|
||||||
check reqRes.isOk()
|
check reqRes.isOk()
|
||||||
let req = reqRes.get()
|
let req = reqRes.get()
|
||||||
check storeEligibilityCanonicalHex(req) == N8ReferenceWireHex
|
check storeEligibilityCanonicalHex(req) == N8ReferenceWireHex
|
||||||
|
|
||||||
test "Step 17 E2E query JSON matches lez-payment-streams n8 wire":
|
test "reference query JSON protobuf roundtrip matches n8 wire":
|
||||||
let parsed = parseJson(Step17E2eQueryJson)
|
let parsed = parseJson(N8ReferenceQueryJson)
|
||||||
let reqRes = storeQueryRequestFromJson(parsed)
|
|
||||||
check reqRes.isOk()
|
|
||||||
let req = reqRes.get()
|
|
||||||
check storeEligibilityCanonicalHex(req) == Step17N8ReferenceWireHex
|
|
||||||
|
|
||||||
test "Step 17 E2E query JSON protobuf roundtrip matches n8 wire":
|
|
||||||
let parsed = parseJson(Step17E2eQueryJson)
|
|
||||||
let reqRes = storeQueryRequestFromJson(parsed)
|
let reqRes = storeQueryRequestFromJson(parsed)
|
||||||
check reqRes.isOk()
|
check reqRes.isOk()
|
||||||
var req = reqRes.get()
|
var req = reqRes.get()
|
||||||
req.eligibilityProof = some(@[byte(0xAB)])
|
req.eligibilityProof = some(@[byte(0xAB)])
|
||||||
let buf = req.encode().buffer
|
let buf = req.encode().buffer
|
||||||
let decoded = StoreQueryRequest.decode(buf).get()
|
let decoded = StoreQueryRequest.decode(buf).get()
|
||||||
check storeEligibilityCanonicalHex(decoded) == Step17N8ReferenceWireHex
|
|
||||||
|
|
||||||
test "E2E query JSON protobuf roundtrip matches N8 reference":
|
|
||||||
let parsed = parseJson(E2eQueryJson)
|
|
||||||
let reqRes = storeQueryRequestFromJson(parsed)
|
|
||||||
check reqRes.isOk()
|
|
||||||
var req = reqRes.get()
|
|
||||||
req.eligibilityProof = some(@[byte(0xAB), byte(0xCD)])
|
|
||||||
let buf = req.encode().buffer
|
|
||||||
let decoded = StoreQueryRequest.decode(buf).get()
|
|
||||||
check storeEligibilityCanonicalHex(decoded) == N8ReferenceWireHex
|
check storeEligibilityCanonicalHex(decoded) == N8ReferenceWireHex
|
||||||
check decoded.eligibilityProof.isSome()
|
check decoded.eligibilityProof.isSome()
|
||||||
check decoded.eligibilityProof.get() == @[byte(0xAB), byte(0xCD)]
|
check decoded.eligibilityProof.get() == @[byte(0xAB)]
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user