From ebf2e097f20bff360b46bcd62a6d39b1303b7f49 Mon Sep 17 00:00:00 2001 From: LRLJoe Date: Tue, 1 Oct 2024 03:16:37 +0100 Subject: [PATCH] PaginationVisuals - Utilise Class Inheritance for Tests --- .../Visuals/Themed/BasePaginationVisuals.php | 46 +++++++++++++++++++ .../Bootstrap4/BS4PaginationVisualsTest.php | 7 +-- .../Bootstrap5/BS5PaginationVisualsTest.php | 7 +-- .../Tailwind/TWPaginationVisualsTest.php | 15 +----- .../Traits/Visuals/Themed/ThemedTestCase.php | 23 +--------- 5 files changed, 53 insertions(+), 45 deletions(-) create mode 100644 tests/Traits/Visuals/Themed/BasePaginationVisuals.php diff --git a/tests/Traits/Visuals/Themed/BasePaginationVisuals.php b/tests/Traits/Visuals/Themed/BasePaginationVisuals.php new file mode 100644 index 000000000..a5b9cfab9 --- /dev/null +++ b/tests/Traits/Visuals/Themed/BasePaginationVisuals.php @@ -0,0 +1,46 @@ +setupBasicTableForLivewire(); + } + + public function setupSingleRecordBasicTable() + { + return $this->setupBasicTableForLivewire() + ->call('setPerPageAccepted', [1]) + ->call('setPerPage', 1); + } + + public function tableWithStandardDetailedPagination() + { + return $this->setupBasicTableSingleRecord() + ->call('enableDetailedPagination', 'standard'); + } + + public function tableWithSimpleDetailedPagination() + { + return $this->setupBasicTableSingleRecord() + ->call('enableDetailedPagination', 'simple'); + } + + public function test_per_page_dropdown_only_renders_with_accepted_values(): void + { + $this->expectException(DataTableConfigurationException::class); + + $this->setupBasicTableForBrowsing() + ->call('setPerPage', 15); + } + + +} \ No newline at end of file diff --git a/tests/Traits/Visuals/Themed/Bootstrap4/BS4PaginationVisualsTest.php b/tests/Traits/Visuals/Themed/Bootstrap4/BS4PaginationVisualsTest.php index d000e40d9..42066ae37 100644 --- a/tests/Traits/Visuals/Themed/Bootstrap4/BS4PaginationVisualsTest.php +++ b/tests/Traits/Visuals/Themed/Bootstrap4/BS4PaginationVisualsTest.php @@ -2,12 +2,9 @@ namespace Rappasoft\LaravelLivewireTables\Tests\Traits\Visuals\Themed\Bootstrap4; -use Livewire\Livewire; -use Rappasoft\LaravelLivewireTables\Exceptions\DataTableConfigurationException; -use Rappasoft\LaravelLivewireTables\Tests\Http\Livewire\{PetsTable}; -use Rappasoft\LaravelLivewireTables\Tests\Traits\Visuals\Themed\ThemedTestCase; +use Rappasoft\LaravelLivewireTables\Tests\Traits\Visuals\Themed\BasePaginationVisuals; -final class BS4PaginationVisualsTest extends ThemedTestCase +final class BS4PaginationVisualsTest extends BasePaginationVisuals { protected function setupBasicTableForBrowsing() { diff --git a/tests/Traits/Visuals/Themed/Bootstrap5/BS5PaginationVisualsTest.php b/tests/Traits/Visuals/Themed/Bootstrap5/BS5PaginationVisualsTest.php index 1bed5a89b..c96988e2c 100644 --- a/tests/Traits/Visuals/Themed/Bootstrap5/BS5PaginationVisualsTest.php +++ b/tests/Traits/Visuals/Themed/Bootstrap5/BS5PaginationVisualsTest.php @@ -2,12 +2,9 @@ namespace Rappasoft\LaravelLivewireTables\Tests\Traits\Visuals\Themed\Bootstrap5; -use Livewire\Livewire; -use Rappasoft\LaravelLivewireTables\Exceptions\DataTableConfigurationException; -use Rappasoft\LaravelLivewireTables\Tests\Http\Livewire\{PetsTable}; -use Rappasoft\LaravelLivewireTables\Tests\Traits\Visuals\Themed\ThemedTestCase; +use Rappasoft\LaravelLivewireTables\Tests\Traits\Visuals\Themed\BasePaginationVisuals; -final class BS5PaginationVisualsTest extends ThemedTestCase +final class BS5PaginationVisualsTest extends BasePaginationVisuals { protected function setupBasicTableForBrowsing() { diff --git a/tests/Traits/Visuals/Themed/Tailwind/TWPaginationVisualsTest.php b/tests/Traits/Visuals/Themed/Tailwind/TWPaginationVisualsTest.php index 24d028297..b6c093304 100644 --- a/tests/Traits/Visuals/Themed/Tailwind/TWPaginationVisualsTest.php +++ b/tests/Traits/Visuals/Themed/Tailwind/TWPaginationVisualsTest.php @@ -2,12 +2,9 @@ namespace Rappasoft\LaravelLivewireTables\Tests\Traits\Visuals\Themed\Tailwind; -use Livewire\Livewire; -use Rappasoft\LaravelLivewireTables\Exceptions\DataTableConfigurationException; -use Rappasoft\LaravelLivewireTables\Tests\Http\Livewire\{PetsTable}; -use Rappasoft\LaravelLivewireTables\Tests\Traits\Visuals\Themed\ThemedTestCase; +use Rappasoft\LaravelLivewireTables\Tests\Traits\Visuals\Themed\BasePaginationVisuals; -final class TWPaginationVisualsTest extends ThemedTestCase +final class TWPaginationVisualsTest extends BasePaginationVisuals { protected function setupBasicTableForBrowsing() { @@ -130,14 +127,6 @@ public function test_total_results_label_doesnt_show_with_pagination_hidden(): v ]); }*/ - public function test_per_page_dropdown_only_renders_with_accepted_values(): void - { - $this->expectException(DataTableConfigurationException::class); - - $this->setupBasicTableForBrowsing() - ->call('setPerPage', 15); - } - public function test_can_get_currently_displayed_ids(): void { $this->setupBasicTableForBrowsing() diff --git a/tests/Traits/Visuals/Themed/ThemedTestCase.php b/tests/Traits/Visuals/Themed/ThemedTestCase.php index 29179ba6b..4c268f303 100644 --- a/tests/Traits/Visuals/Themed/ThemedTestCase.php +++ b/tests/Traits/Visuals/Themed/ThemedTestCase.php @@ -7,11 +7,8 @@ use Rappasoft\LaravelLivewireTables\Tests\Http\Livewire\{PetsTable}; use Rappasoft\LaravelLivewireTables\Tests\TestCase; -abstract class ThemedTestCase extends TestCase +class ThemedTestCase extends TestCase { - abstract protected function setupBasicTableForBrowsing(); - - abstract protected function setupBasicTableSingleRecord(); protected function setupBasicTableForLivewire() { @@ -23,22 +20,4 @@ public function pagination_shows_by_default() return $this->setupBasicTableForLivewire(); } - public function setupSingleRecordBasicTable() - { - return $this->setupBasicTableForLivewire() - ->call('setPerPageAccepted', [1]) - ->call('setPerPage', 1); - } - - public function tableWithStandardDetailedPagination() - { - return $this->setupBasicTableSingleRecord() - ->call('enableDetailedPagination', 'standard'); - } - - public function tableWithSimpleDetailedPagination() - { - return $this->setupBasicTableSingleRecord() - ->call('enableDetailedPagination', 'simple'); - } }