From 962e0aaf78d481a7b5142b62226b1daf5594a435 Mon Sep 17 00:00:00 2001 From: Arman <407448+armanist@users.noreply.github.com> Date: Sat, 7 Feb 2026 20:02:27 +0400 Subject: [PATCH] Bug: "Array" rendered inside pagination HTML --- src/Paginator/Traits/PaginatorTrait.php | 2 +- .../Paginator/Adapters/ArrayPaginatorTest.php | 25 +++++++++++++++++ .../Paginator/Adapters/ModelPaginatorTest.php | 27 +++++++++++++++++++ 3 files changed, 53 insertions(+), 1 deletion(-) diff --git a/src/Paginator/Traits/PaginatorTrait.php b/src/Paginator/Traits/PaginatorTrait.php index 3c2e1234b..0a3cb983f 100644 --- a/src/Paginator/Traits/PaginatorTrait.php +++ b/src/Paginator/Traits/PaginatorTrait.php @@ -308,7 +308,7 @@ protected function getPreviousPageItem(?string $previousPageLink): string */ protected function getItemsLinks(int $startPage, int $endPage, int $currentPage, array $links): string { - $pagination = []; + $pagination = ''; for ($i = $startPage; $i <= $endPage; $i++) { $active = $i === $currentPage ? 'class="' . Pagination::PAGINATION_CLASS_ACTIVE . '"' : ''; diff --git a/tests/Unit/Paginator/Adapters/ArrayPaginatorTest.php b/tests/Unit/Paginator/Adapters/ArrayPaginatorTest.php index b1ceb31d3..f3bfda8d4 100644 --- a/tests/Unit/Paginator/Adapters/ArrayPaginatorTest.php +++ b/tests/Unit/Paginator/Adapters/ArrayPaginatorTest.php @@ -132,4 +132,29 @@ public function testArrayPaginatorPerPage() { $this->assertEquals(2, $this->paginator->perPage()); } + + public function testArrayPaginatorGetPaginationRendersCurrentAndLastPage() + { + $html = $this->paginator->getPagination(); + + $this->assertStringContainsString('>1<', $html); + $this->assertStringContainsString('>3<', $html); + } + + public function testArrayPaginatorGetPaginationRendersEllipsisForHiddenPages() + { + $html = $this->paginator->getPagination(); + + $this->assertStringContainsString('...', $html); + } + + public function testArrayPaginatorGetPaginationRendersMiddlePageWhenCurrentPageIsTwo() + { + $paginator = new ArrayPaginator($this->items, 2, 2); + + $html = $paginator->getPagination(); + + $this->assertStringContainsString('>2<', $html); + } + } diff --git a/tests/Unit/Paginator/Adapters/ModelPaginatorTest.php b/tests/Unit/Paginator/Adapters/ModelPaginatorTest.php index 204f07107..29dfd1cdb 100644 --- a/tests/Unit/Paginator/Adapters/ModelPaginatorTest.php +++ b/tests/Unit/Paginator/Adapters/ModelPaginatorTest.php @@ -160,4 +160,31 @@ public function testModelPaginatorPerPage() { $this->assertEquals(2, $this->paginator->perPage()); } + + public function testModelPaginatorGetPaginationRendersCurrentAndLastPage() + { + $html = $this->paginator->getPagination(); + + $this->assertStringContainsString('>1<', $html); + $this->assertStringContainsString('>3<', $html); + } + + public function testModelPaginatorGetPaginationRendersEllipsisForHiddenPages() + { + $html = $this->paginator->getPagination(); + + $this->assertStringContainsString('...', $html); + } + + public function testModelPaginatorGetPaginationRendersMiddlePageWhenCurrentPageIsTwo() + { + $postModel = ModelFactory::createDynamicModel('posts', TestPostModel::class); + + $paginator = new ModelPaginator($postModel, 2, 2); + + $html = $paginator->getPagination(); + + $this->assertStringContainsString('>2<', $html); + } + }