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);
+ }
+
}