diff --git a/src/Paginator/Traits/PaginatorTrait.php b/src/Paginator/Traits/PaginatorTrait.php index 3c2e1234..0a3cb983 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 b1ceb31d..f3bfda8d 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 204f0710..29dfd1cd 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); + } + }