Skip to content

Commit 50eb407

Browse files
committed
Add test for OffsetCursorPaginator
1 parent f54960c commit 50eb407

File tree

1 file changed

+54
-0
lines changed

1 file changed

+54
-0
lines changed
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
import { OffsetCursor, OffsetCursorPaginator } from './OffsetCursorPaginator';
2+
3+
describe('OffsetCursorPaginator', () => {
4+
test('PageInfo is correct for first page', () => {
5+
const paginator = new OffsetCursorPaginator({
6+
take: 20,
7+
skip: 0,
8+
totalEdges: 50,
9+
});
10+
const pageInfo = paginator.createPageInfo(20);
11+
12+
expect(pageInfo.totalEdges).toBe(50);
13+
expect(pageInfo.hasPreviousPage).toBe(false);
14+
expect(pageInfo.hasNextPage).toBe(true);
15+
expect(pageInfo.startCursor).toBeDefined();
16+
expect(OffsetCursor.create(pageInfo.startCursor!).parameters.offset).toStrictEqual(0);
17+
expect(pageInfo.endCursor).toBeDefined();
18+
expect(OffsetCursor.create(pageInfo.endCursor!).parameters.offset).toStrictEqual(19);
19+
});
20+
21+
test('PageInfo is correct for second page', () => {
22+
const paginator = new OffsetCursorPaginator({
23+
take: 20,
24+
skip: 20,
25+
totalEdges: 50,
26+
});
27+
const pageInfo = paginator.createPageInfo(20);
28+
29+
expect(pageInfo.totalEdges).toBe(50);
30+
expect(pageInfo.hasPreviousPage).toBe(true);
31+
expect(pageInfo.hasNextPage).toBe(true);
32+
expect(pageInfo.startCursor).toBeDefined();
33+
expect(OffsetCursor.create(pageInfo.startCursor!).parameters.offset).toStrictEqual(20);
34+
expect(pageInfo.endCursor).toBeDefined();
35+
expect(OffsetCursor.create(pageInfo.endCursor!).parameters.offset).toStrictEqual(39);
36+
});
37+
38+
test('PageInfo is correct for last page', () => {
39+
const paginator = new OffsetCursorPaginator({
40+
take: 20,
41+
skip: 40,
42+
totalEdges: 50,
43+
});
44+
const pageInfo = paginator.createPageInfo(10);
45+
46+
expect(pageInfo.totalEdges).toBe(50);
47+
expect(pageInfo.hasPreviousPage).toBe(true);
48+
expect(pageInfo.hasNextPage).toBe(false);
49+
expect(pageInfo.startCursor).toBeDefined();
50+
expect(OffsetCursor.create(pageInfo.startCursor!).parameters.offset).toStrictEqual(40);
51+
expect(pageInfo.endCursor).toBeDefined();
52+
expect(OffsetCursor.create(pageInfo.endCursor!).parameters.offset).toStrictEqual(49);
53+
});
54+
});

0 commit comments

Comments
 (0)