diff --git a/pagination.go b/pagination.go index ada4e47..06ec629 100644 --- a/pagination.go +++ b/pagination.go @@ -52,7 +52,7 @@ func EncodeCursor(cursor string) string { } func GetPage[T any](items []T, first *int, after *string, last *int, before *string, max int, fn func(T) string) ([]T, PageInfo) { - if items == nil { + if len(items) == 0 { return nil, PageInfo{} } tmp := min(max, len(items)) diff --git a/pagination_test.go b/pagination_test.go index b907d2b..7db8da6 100644 --- a/pagination_test.go +++ b/pagination_test.go @@ -24,11 +24,17 @@ func TestGetPage(t *testing.T) { } tests := []testCase[string]{ { - name: "empty", + name: "nil items", args: args[string]{max: 10}, wantItems: nil, wantPageInfo: PageInfo{}, }, + { + name: "empty items", + args: args[string]{items: []string{}, max: 10}, + wantItems: nil, + wantPageInfo: PageInfo{}, + }, { name: "first 2", args: args[string]{items: []string{"1", "2", "3"}, first: ptr(2), max: 10, fn: func(s string) string { return s }},