Ensure store response never exceeds MaxPageSize (#811)

* Never exceed maxPageSize, even with no specified pagination

* fix test

* Changelog

* Forgot to stage everything...

* Account for timing difference in Windows
This commit is contained in:
Hanno Cornelius
2022-01-07 15:01:23 +01:00
committed by GitHub
parent 4e6960ad26
commit 685d43b2b3
4 changed files with 16 additions and 12 deletions
+1 -1
View File
@@ -257,7 +257,7 @@ procSuite "Waku v2 JSON-RPC API":
let response = await client.get_waku_v2_store_v1_messages(some(defaultTopic), some(@[HistoryContentFilter(contentTopic: defaultContentTopic)]), some(0.float64), some(9.float64), some(StorePagingOptions()))
check:
response.messages.len() == 8
response.pagingOptions.isNone
response.pagingOptions.isSome()
server.stop()
server.close()
+8 -4
View File
@@ -190,8 +190,8 @@ procSuite "Waku Store":
key = PrivateKey.random(ECDSA, rng[]).get()
peer = PeerInfo.new(key)
msg1 = WakuMessage(payload: @[byte 1, 2, 3], contentTopic: defaultContentTopic)
msg2 = WakuMessage(payload: @[byte 1, 2, 3], contentTopic: defaultContentTopic)
msg3 = WakuMessage(payload: @[byte 1, 2, 3], contentTopic: defaultContentTopic)
msg2 = WakuMessage(payload: @[byte 4, 5, 6], contentTopic: defaultContentTopic)
msg3 = WakuMessage(payload: @[byte 7, 8, 9,], contentTopic: defaultContentTopic)
var dialSwitch = newStandardSwitch()
discard await dialSwitch.start()
@@ -389,7 +389,7 @@ procSuite "Waku Store":
check:
(await completionFut.withTimeout(5.seconds)) == true
asyncTest "handle queries with no pagination":
asyncTest "handle queries with no paging info (auto-paginate)":
let
key = PrivateKey.random(ECDSA, rng[]).get()
peer = PeerInfo.new(key)
@@ -424,8 +424,12 @@ procSuite "Waku Store":
proc handler(response: HistoryResponse) {.gcsafe, closure.} =
check:
## No pagination specified. Response will be auto-paginated with
## up to MaxPageSize messages per page.
response.messages.len() == 8
response.pagingInfo == PagingInfo()
response.pagingInfo.pageSize == 8
response.pagingInfo.direction == PagingDirection.BACKWARD
response.pagingInfo.cursor != Index()
completionFut.complete(true)
let rpc = HistoryQuery(contentFilters: @[HistoryContentFilter(contentTopic: defaultContentTopic)] )