From 5e730e86a17d6194d64473276e47769ead911843 Mon Sep 17 00:00:00 2001 From: Nicolas PHILIPPE Date: Thu, 12 Sep 2024 17:13:59 +0200 Subject: [PATCH] fix: count TraversablePaginator --- src/State/Pagination/TraversablePaginator.php | 4 ++++ tests/State/Pagination/TraversablePaginatorTest.php | 2 ++ 2 files changed, 6 insertions(+) diff --git a/src/State/Pagination/TraversablePaginator.php b/src/State/Pagination/TraversablePaginator.php index 8749e3b2029..87de541a9b8 100644 --- a/src/State/Pagination/TraversablePaginator.php +++ b/src/State/Pagination/TraversablePaginator.php @@ -68,6 +68,10 @@ public function count(): int return (int) ceil($this->totalItems); } + if ($this->totalItems === $this->itemsPerPage) { + return (int) ceil($this->totalItems); + } + return $this->totalItems % $this->itemsPerPage; } diff --git a/tests/State/Pagination/TraversablePaginatorTest.php b/tests/State/Pagination/TraversablePaginatorTest.php index 4f49a8f353d..10dd837e057 100644 --- a/tests/State/Pagination/TraversablePaginatorTest.php +++ b/tests/State/Pagination/TraversablePaginatorTest.php @@ -50,6 +50,8 @@ public static function initializeProvider(): array 'Empty results' => [[], 1, 2, 0, 1, 0], '0 items per page' => [[0, 1, 2, 3], 1, 0, 4, 1, 4], 'Total items less than items per page' => [[0, 1, 2], 1, 4, 3, 1, 3], + 'Only one result' => [[0], 1, 1, 1, 1, 1], + 'Same result number than total page' => [[0, 2, 3], 1, 3, 3, 1, 3], ]; } }