diff --git a/packages/tests/tests/store/cursor.node.spec.ts b/packages/tests/tests/store/cursor.node.spec.ts index 9fc2518aea..e12bae4531 100644 --- a/packages/tests/tests/store/cursor.node.spec.ts +++ b/packages/tests/tests/store/cursor.node.spec.ts @@ -106,20 +106,32 @@ describe("Waku Store, cursor", function () { cursor.digest = new Uint8Array([]); const messagesAfterCursor: DecodedMessage[] = []; - for await (const page of waku.store.queryGenerator([TestDecoder], { - cursor - })) { - for await (const msg of page.reverse()) { - if (msg) { - messagesAfterCursor.push(msg as DecodedMessage); + try { + for await (const page of waku.store.queryGenerator([TestDecoder], { + cursor + })) { + for await (const msg of page.reverse()) { + if (msg) { + messagesAfterCursor.push(msg as DecodedMessage); + } } } + expect(messagesAfterCursor.length).to.eql(0); + } catch (error) { + if ( + nwaku.type() === "go-waku" && + typeof error === "string" && + error.includes("History response contains an Error: INVALID_CURSOR") + ) { + return; + } + throw error instanceof Error + ? new Error(`Unexpected error: ${error.message}`) + : error; } - expect(messagesAfterCursor.length).be.eql(0); }); - // Skipped because of strange results. Generator retrieves messages even if cursor is using a different customPubSubTopic. - // My guess is that pubsubTopic is not used. Need to confirm + // PubsubTopic is ignored in the cursor. Needs fixing so it throws an error if it doesn't match with Decoder it.skip("Passing cursor with wrong pubSubTopic", async function () { await sendMessages(nwaku, totalMsgs, TestContentTopic, DefaultPubSubTopic); waku = await startAndConnectLightNode(nwaku); diff --git a/packages/tests/tests/store/page_size.node.spec.ts b/packages/tests/tests/store/page_size.node.spec.ts index cf0f3fa3df..2e2a552b07 100644 --- a/packages/tests/tests/store/page_size.node.spec.ts +++ b/packages/tests/tests/store/page_size.node.spec.ts @@ -29,7 +29,7 @@ describe("Waku Store, page size", function () { }); [ - [0, 30], + [0, 110], [1, 4], [3, 20], [10, 10], @@ -48,7 +48,11 @@ describe("Waku Store, page size", function () { // Determine effectivePageSize for test expectations let effectivePageSize = pageSize; if (pageSize === 0) { - effectivePageSize = 20; + if (nwaku.type() == "go-waku") { + effectivePageSize = 100; + } else { + effectivePageSize = 20; + } } else if (pageSize > 100) { effectivePageSize = 100; } diff --git a/packages/tests/tests/store/time_filter.node.spec.ts b/packages/tests/tests/store/time_filter.node.spec.ts index b0dc9ccfc4..ff78fc61e5 100644 --- a/packages/tests/tests/store/time_filter.node.spec.ts +++ b/packages/tests/tests/store/time_filter.node.spec.ts @@ -28,26 +28,19 @@ describe("Waku Store, time filter", function () { }); [ - [-10000, -10, 10], - [-10000, 1, 4], - [-10000, -2, -1], - [-10000, 0, 1000], - [-10000, -1000, 0], - [10000, 4, 1], - [10000, -10, 10] - ].forEach(([msgTimeAdjustment, startTime, endTime]) => { - it(`msgTime: ${adjustDate( - new Date(), - msgTimeAdjustment - )}, startTime: ${adjustDate( - adjustDate(new Date(), msgTimeAdjustment), - startTime - )}, endTime: ${adjustDate( - adjustDate(new Date(), msgTimeAdjustment), - endTime - )}`, async function () { - const msgTimestamp = adjustDate(new Date(), msgTimeAdjustment); - + [-19000, -10, 10], + [-19000, 1, 4], + [-19000, -2, -1], + [-19000, 0, 1000], + [-19000, -1000, 0], + [19000, 4, 1], + [19000, -10010, -9990], + [19000, -10, 10] + ].forEach(([msgTime, startTime, endTime]) => { + it(`msgTime: ${msgTime} ms from now, startTime: ${ + msgTime + startTime + }, endTime: ${msgTime + endTime}`, async function () { + const msgTimestamp = adjustDate(new Date(), msgTime); expect( await nwaku.sendMessage( NimGoNode.toMessageRpcQuery({ @@ -85,4 +78,39 @@ describe("Waku Store, time filter", function () { } }); }); + + [-20000, 40000].forEach((msgTime) => { + it(`Timestamp too far from node time: ${msgTime} ms from now`, async function () { + const msgTimestamp = adjustDate(new Date(), msgTime); + expect( + await nwaku.sendMessage( + NimGoNode.toMessageRpcQuery({ + payload: new Uint8Array([0]), + contentTopic: TestContentTopic, + timestamp: msgTimestamp + }) + ) + ).to.be.true; + + waku = await startAndConnectLightNode(nwaku); + + const messages: IMessage[] = []; + await waku.store.queryWithOrderedCallback( + [TestDecoder], + (msg) => { + if (msg) { + messages.push(msg); + } + }, + { + timeFilter: { + startTime: adjustDate(msgTimestamp, -1000), + endTime: adjustDate(msgTimestamp, 1000) + } + } + ); + + expect(messages.length).eq(0); + }); + }); });