From e9528c0917259602655b2c27f0b1c5ff69b16a57 Mon Sep 17 00:00:00 2001 From: Alessandro Ros Date: Mon, 30 Oct 2023 19:53:16 +0100 Subject: [PATCH] api: return empty list when page is empty (#2604) (#2614) --- internal/core/api.go | 6 +++--- internal/core/api_test.go | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/internal/core/api.go b/internal/core/api.go index 906dfeb0..b0a3c5f7 100644 --- a/internal/core/api.go +++ b/internal/core/api.go @@ -36,12 +36,12 @@ func paginate2(itemsPtr interface{}, itemsPerPage int, page int) int { } min := page * itemsPerPage - if min >= itemsLen { - min = itemsLen - 1 + if min > itemsLen { + min = itemsLen } max := (page + 1) * itemsPerPage - if max >= itemsLen { + if max > itemsLen { max = itemsLen } diff --git a/internal/core/api_test.go b/internal/core/api_test.go index 4c39bbd2..05278bce 100644 --- a/internal/core/api_test.go +++ b/internal/core/api_test.go @@ -121,17 +121,17 @@ func TestPagination(t *testing.T) { pageCount, err = paginate(&items, "3", "2") require.NoError(t, err) require.Equal(t, 2, pageCount) - require.Equal(t, []int{4}, items) + require.Equal(t, []int{}, items) items = make([]int, 6) for i := 0; i < 6; i++ { items[i] = i } - pageCount, err = paginate(&items, "3", "3") + pageCount, err = paginate(&items, "4", "1") require.NoError(t, err) require.Equal(t, 2, pageCount) - require.Equal(t, []int{5}, items) + require.Equal(t, []int{4, 5}, items) } func TestAPIConfigGlobalGet(t *testing.T) {