fix(pagination): handle empty page return case #15

Merged
argoyle merged 1 commits from fix-pagination-empty-page-handling into main 2025-06-16 10:08:31 +00:00
2 changed files with 9 additions and 0 deletions
+3
View File
@@ -88,6 +88,9 @@ func GetPage[T any](items []T, first *int, after *string, last *int, before *str
eIx = idx
}
page := items[sIx:min(eIx, len(items))]
if len(page) == 0 {
return nil, PageInfo{}
}
return page, PageInfo{
StartCursor: ptr(EncodeCursor(fn(page[0]))),
HasNextPage: eIx < len(items),
+6
View File
@@ -45,6 +45,12 @@ func TestGetPage(t *testing.T) {
EndCursor: ptr("Mg=="),
},
},
{
name: "no more items",
args: args[string]{items: []string{"1", "2", "3"}, first: ptr(2), after: ptr("Mw=="), max: 10, fn: func(s string) string { return s }},
wantItems: nil,
wantPageInfo: PageInfo{},
},
{
name: "first 10",
args: args[string]{items: []string{"1", "2", "3"}, first: ptr(10), max: 10, fn: func(s string) string { return s }},