Skip to content

Commit 75a1b11

Browse files
committed
repro for desc out of order for pagination
1 parent 1ab7d75 commit 75a1b11

File tree

1 file changed

+17
-4
lines changed

1 file changed

+17
-4
lines changed

packages/convex-helpers/server/pagination.test.ts

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -330,8 +330,11 @@ describe("paginator", () => {
330330
const t = convexTest(schema, modules);
331331
await t.run(async (ctx) => {
332332
await ctx.db.insert("foo", { a: 1, b: 5, c: 1 });
333+
await ctx.db.insert("foo", { a: 1, b: 5, c: 2 });
334+
await ctx.db.insert("foo", { a: 1, b: 5, c: 3 });
333335
await ctx.db.insert("foo", { a: 1, b: 6, c: 1 });
334336
await ctx.db.insert("foo", { a: 1, b: 3, c: 1 });
337+
await ctx.db.insert("foo", { a: 1, b: 3, c: 2 });
335338
await ctx.db.insert("foo", { a: 1, b: 4, c: 1 });
336339
await ctx.db.insert("foo", { a: 1, b: 4, c: 2 });
337340
const result1 = await paginator(ctx.db, schema)
@@ -340,20 +343,30 @@ describe("paginator", () => {
340343
.order("desc")
341344
.paginate({ cursor: null, numItems: 2 });
342345
expect(result1.page.map(stripSystemFields)).toEqual([
343-
{ a: 1, b: 5, c: 1 },
344-
{ a: 1, b: 4, c: 2 },
346+
{ a: 1, b: 5, c: 3 },
347+
{ a: 1, b: 5, c: 2 },
345348
]);
346349
expect(result1.isDone).toBe(false);
347350

348351
const result2 = await paginator(ctx.db, schema)
349352
.query("foo")
350353
.withIndex("abc", (q) => q.eq("a", 1).gt("b", 3).lte("b", 5))
351354
.order("desc")
352-
.paginate({ cursor: result1.continueCursor, numItems: 2 });
355+
.paginate({ cursor: result1.continueCursor, numItems: 3 });
353356
expect(result2.page.map(stripSystemFields)).toEqual([
357+
{ a: 1, b: 5, c: 1 },
358+
{ a: 1, b: 4, c: 2 },
354359
{ a: 1, b: 4, c: 1 },
355360
]);
356-
expect(result2.isDone).toBe(true);
361+
expect(result2.isDone).toBe(false);
362+
363+
const result3 = await paginator(ctx.db, schema)
364+
.query("foo")
365+
.withIndex("abc", (q) => q.eq("a", 1).gt("b", 3).lte("b", 5))
366+
.order("desc")
367+
.paginate({ cursor: result2.continueCursor, numItems: 2 });
368+
expect(result3.page.map(stripSystemFields)).toEqual([]);
369+
expect(result3.isDone).toBe(true);
357370
});
358371
});
359372

0 commit comments

Comments
 (0)