From 64db7787a579b7bd35f20dcb604d2c9678fb0b9e Mon Sep 17 00:00:00 2001 From: LRLJoe Date: Sun, 1 Dec 2024 02:16:12 +0000 Subject: [PATCH 1/2] Add missing tests for WithCustomisations --- tests/TestCase.php | 53 +++++- tests/Unit/Traits/WithCustomisationsTest.php | 174 +++++++++++++++++++ tests/views/layouts/app.blade.php | 13 ++ 3 files changed, 234 insertions(+), 6 deletions(-) create mode 100644 tests/Unit/Traits/WithCustomisationsTest.php create mode 100644 tests/views/layouts/app.blade.php diff --git a/tests/TestCase.php b/tests/TestCase.php index 957aa151f..312ecdd4f 100644 --- a/tests/TestCase.php +++ b/tests/TestCase.php @@ -103,7 +103,13 @@ protected function setupBasicTable() $this->basicTable->bootedWithColumnSelect(); $this->basicTable->bootedWithSecondaryHeader(); $this->basicTable->booted(); - $this->basicTable->renderingWithPagination($view, []); + $this->basicTable->renderingWithColumns($view, $view->getData()); + $this->basicTable->renderingWithColumnSelect($view, $view->getData()); + $this->basicTable->renderingWithCustomisations($view, $view->getData()); + $this->basicTable->renderingWithData($view, $view->getData()); + $this->basicTable->renderingWithFooter($view, $view->getData()); + $this->basicTable->renderingWithReordering($view, $view->getData()); + $this->basicTable->renderingWithPagination($view, $view->getData()); $this->basicTable->render(); } @@ -118,7 +124,14 @@ protected function setupEventsTable() $this->eventsTable->bootedWithColumnSelect(); $this->eventsTable->bootedWithSecondaryHeader(); $this->eventsTable->booted(); - $this->eventsTable->renderingWithPagination($view, []); + $this->eventsTable->renderingWithColumns($view, $view->getData()); + $this->eventsTable->renderingWithColumnSelect($view, $view->getData()); + $this->eventsTable->renderingWithCustomisations($view, $view->getData()); + $this->eventsTable->renderingWithData($view, $view->getData()); + $this->eventsTable->renderingWithFooter($view, $view->getData()); + $this->eventsTable->renderingWithReordering($view, $view->getData()); + $this->eventsTable->renderingWithPagination($view, $view->getData()); + $this->eventsTable->render(); } @@ -133,7 +146,13 @@ protected function setupBreedsTable() $this->breedsTable->bootedWithColumnSelect(); $this->breedsTable->bootedWithSecondaryHeader(); $this->breedsTable->booted(); - $this->breedsTable->renderingWithPagination($view, []); + $this->breedsTable->renderingWithColumns($view, $view->getData()); + $this->breedsTable->renderingWithColumnSelect($view, $view->getData()); + $this->breedsTable->renderingWithCustomisations($view, $view->getData()); + $this->breedsTable->renderingWithData($view, $view->getData()); + $this->breedsTable->renderingWithFooter($view, $view->getData()); + $this->breedsTable->renderingWithReordering($view, $view->getData()); + $this->breedsTable->renderingWithPagination($view, $view->getData()); $this->breedsTable->render(); } @@ -148,7 +167,13 @@ protected function setupPetOwnerTable() $this->petOwnerTable->bootedWithColumnSelect(); $this->petOwnerTable->bootedWithSecondaryHeader(); $this->petOwnerTable->booted(); - $this->petOwnerTable->renderingWithPagination($view, []); + $this->petOwnerTable->renderingWithColumns($view, $view->getData()); + $this->petOwnerTable->renderingWithColumnSelect($view, $view->getData()); + $this->petOwnerTable->renderingWithCustomisations($view, $view->getData()); + $this->petOwnerTable->renderingWithData($view, $view->getData()); + $this->petOwnerTable->renderingWithFooter($view, $view->getData()); + $this->petOwnerTable->renderingWithReordering($view, $view->getData()); + $this->petOwnerTable->renderingWithPagination($view, $view->getData()); $this->petOwnerTable->render(); } @@ -163,7 +188,13 @@ protected function setupSpeciesTable() $this->speciesTable->bootedWithColumnSelect(); $this->speciesTable->bootedWithSecondaryHeader(); $this->speciesTable->booted(); - $this->speciesTable->renderingWithPagination($view, []); + $this->speciesTable->renderingWithColumns($view, $view->getData()); + $this->speciesTable->renderingWithColumnSelect($view, $view->getData()); + $this->speciesTable->renderingWithCustomisations($view, $view->getData()); + $this->speciesTable->renderingWithData($view, $view->getData()); + $this->speciesTable->renderingWithFooter($view, $view->getData()); + $this->speciesTable->renderingWithReordering($view, $view->getData()); + $this->speciesTable->renderingWithPagination($view, $view->getData()); $this->speciesTable->render(); } @@ -179,7 +210,13 @@ protected function setupUnpaginatedTable() $this->unpaginatedTable->bootedWithColumnSelect(); $this->unpaginatedTable->bootedWithSecondaryHeader(); $this->unpaginatedTable->booted(); - $this->unpaginatedTable->renderingWithPagination($view, []); + $this->unpaginatedTable->renderingWithColumns($view, $view->getData()); + $this->unpaginatedTable->renderingWithColumnSelect($view, $view->getData()); + $this->unpaginatedTable->renderingWithCustomisations($view, $view->getData()); + $this->unpaginatedTable->renderingWithData($view, $view->getData()); + $this->unpaginatedTable->renderingWithFooter($view, $view->getData()); + $this->unpaginatedTable->renderingWithReordering($view, $view->getData()); + $this->unpaginatedTable->renderingWithPagination($view, $view->getData()); $this->unpaginatedTable->render(); } @@ -202,6 +239,10 @@ public function getEnvironmentSetUp($app): void config()->set('view.cache', false); config()->set('view.compiled', realpath(storage_path('framework/views')).'/'.rand(0, 100)); // config()->set('livewire-tables.use_json_translations', true); + $app['config']->set('view.paths', [ + __DIR__.'/views', + resource_path('views'), + ]); $app['config']->set('app.env', 'testing'); $app['config']->set('database.default', 'sqlite'); diff --git a/tests/Unit/Traits/WithCustomisationsTest.php b/tests/Unit/Traits/WithCustomisationsTest.php new file mode 100644 index 000000000..78204e8f1 --- /dev/null +++ b/tests/Unit/Traits/WithCustomisationsTest.php @@ -0,0 +1,174 @@ + +
ParentComponentTest
+
+ + HTML; + } + }, + 'child' => new class extends PetsTable { + public function configure(): void + { + parent::configure(); + $this->setLayout('livewire-tables::tests.layout1'); + + } + } + ]) + ->assertSee('ParentComponentTest') + ->assertSee('Cartman'); + + } + + public function test_can_use_as_full_page(): void + { + $temp = new class extends PetsTable { + public function configure(): void + { + parent::configure(); + + $this->setLayout('livewire-tables::tests.layout1'); + + } + }; + $view = view('livewire-tables::datatable'); + + $temp->boot(); + $temp->bootedComponentUtilities(); + $temp->bootedWithData(); + $temp->bootedWithColumns(); + $temp->bootedWithColumnSelect(); + $temp->bootedWithSecondaryHeader(); + $temp->booted(); + $temp->renderingWithColumns($view, $view->getData()); + $temp->renderingWithColumnSelect($view, $view->getData()); + $temp->renderingWithCustomisations($view, $view->getData()); + $temp->renderingWithData($view, $view->getData()); + $temp->renderingWithFooter($view, $view->getData()); + $temp->renderingWithReordering($view, $view->getData()); + $temp->renderingWithPagination($view, $view->getData()); + $temp->render(); + $layoutConfig = $view->getData()['layoutConfig']; + + $this->assertSame($temp->getLayout(), $layoutConfig->view); + } + + public function test_can_set_custom_section(): void + { + $temp = new class extends PetsTable { + public function configure(): void + { + parent::configure(); + + $this->setSection('test-section-1'); + + } + }; + $view = view('livewire-tables::datatable'); + + $temp->boot(); + $temp->bootedComponentUtilities(); + $temp->bootedWithData(); + $temp->bootedWithColumns(); + $temp->bootedWithColumnSelect(); + $temp->bootedWithSecondaryHeader(); + $temp->booted(); + $temp->renderingWithColumns($view, $view->getData()); + $temp->renderingWithColumnSelect($view, $view->getData()); + $temp->renderingWithCustomisations($view, $view->getData()); + $temp->renderingWithData($view, $view->getData()); + $temp->renderingWithFooter($view, $view->getData()); + $temp->renderingWithReordering($view, $view->getData()); + $temp->renderingWithPagination($view, $view->getData()); + $temp->render(); + $layoutConfig = $view->getData()['layoutConfig']; + + $this->assertSame($temp->getSection(), $layoutConfig->slotOrSection); + } + + public function test_can_set_custom_slot(): void + { + $temp = new class extends PetsTable { + public function configure(): void + { + parent::configure(); + + $this->setSlot('test-slot-1'); + + } + }; + $view = view('livewire-tables::datatable'); + + $temp->boot(); + $temp->bootedComponentUtilities(); + $temp->bootedWithData(); + $temp->bootedWithColumns(); + $temp->bootedWithColumnSelect(); + $temp->bootedWithSecondaryHeader(); + $temp->booted(); + $temp->renderingWithColumns($view, $view->getData()); + $temp->renderingWithColumnSelect($view, $view->getData()); + $temp->renderingWithCustomisations($view, $view->getData()); + $temp->renderingWithData($view, $view->getData()); + $temp->renderingWithFooter($view, $view->getData()); + $temp->renderingWithReordering($view, $view->getData()); + $temp->renderingWithPagination($view, $view->getData()); + $temp->render(); + $layoutConfig = $view->getData()['layoutConfig']; + + $this->assertSame($temp->getSlot(), $layoutConfig->slotOrSection); + } + + public function test_can_set_custom_extends(): void + { + $temp = new class extends PetsTable { + public function configure(): void + { + parent::configure(); + + $this->setExtends('test-extends-1'); + + } + }; + $view = view('livewire-tables::datatable'); + + $temp->boot(); + $temp->bootedComponentUtilities(); + $temp->bootedWithData(); + $temp->bootedWithColumns(); + $temp->bootedWithColumnSelect(); + $temp->bootedWithSecondaryHeader(); + $temp->booted(); + $temp->renderingWithColumns($view, $view->getData()); + $temp->renderingWithColumnSelect($view, $view->getData()); + $temp->renderingWithCustomisations($view, $view->getData()); + $temp->renderingWithData($view, $view->getData()); + $temp->renderingWithFooter($view, $view->getData()); + $temp->renderingWithReordering($view, $view->getData()); + $temp->renderingWithPagination($view, $view->getData()); + $temp->render(); + $layoutConfig = $view->getData()['layoutConfig']; + $this->assertSame('extends', $layoutConfig->type); + $this->assertSame($temp->getExtends(), $layoutConfig->view); + $this->assertSame('content', $layoutConfig->slotOrSection); + } + + +} diff --git a/tests/views/layouts/app.blade.php b/tests/views/layouts/app.blade.php new file mode 100644 index 000000000..281164c7f --- /dev/null +++ b/tests/views/layouts/app.blade.php @@ -0,0 +1,13 @@ + + + + + + Laravel Testing Layout +
+ {{ $slot }} +
+ + + + From f77379d281446c0cef0f378310e7d68ba2d972e9 Mon Sep 17 00:00:00 2001 From: lrljoe Date: Sun, 1 Dec 2024 02:16:41 +0000 Subject: [PATCH 2/2] Fix styling --- tests/TestCase.php | 12 ++--- tests/Unit/Traits/WithCustomisationsTest.php | 54 +++++++++++--------- 2 files changed, 35 insertions(+), 31 deletions(-) diff --git a/tests/TestCase.php b/tests/TestCase.php index 312ecdd4f..eb5f3b441 100644 --- a/tests/TestCase.php +++ b/tests/TestCase.php @@ -108,7 +108,7 @@ protected function setupBasicTable() $this->basicTable->renderingWithCustomisations($view, $view->getData()); $this->basicTable->renderingWithData($view, $view->getData()); $this->basicTable->renderingWithFooter($view, $view->getData()); - $this->basicTable->renderingWithReordering($view, $view->getData()); + $this->basicTable->renderingWithReordering($view, $view->getData()); $this->basicTable->renderingWithPagination($view, $view->getData()); $this->basicTable->render(); } @@ -129,7 +129,7 @@ protected function setupEventsTable() $this->eventsTable->renderingWithCustomisations($view, $view->getData()); $this->eventsTable->renderingWithData($view, $view->getData()); $this->eventsTable->renderingWithFooter($view, $view->getData()); - $this->eventsTable->renderingWithReordering($view, $view->getData()); + $this->eventsTable->renderingWithReordering($view, $view->getData()); $this->eventsTable->renderingWithPagination($view, $view->getData()); $this->eventsTable->render(); @@ -151,7 +151,7 @@ protected function setupBreedsTable() $this->breedsTable->renderingWithCustomisations($view, $view->getData()); $this->breedsTable->renderingWithData($view, $view->getData()); $this->breedsTable->renderingWithFooter($view, $view->getData()); - $this->breedsTable->renderingWithReordering($view, $view->getData()); + $this->breedsTable->renderingWithReordering($view, $view->getData()); $this->breedsTable->renderingWithPagination($view, $view->getData()); $this->breedsTable->render(); } @@ -172,7 +172,7 @@ protected function setupPetOwnerTable() $this->petOwnerTable->renderingWithCustomisations($view, $view->getData()); $this->petOwnerTable->renderingWithData($view, $view->getData()); $this->petOwnerTable->renderingWithFooter($view, $view->getData()); - $this->petOwnerTable->renderingWithReordering($view, $view->getData()); + $this->petOwnerTable->renderingWithReordering($view, $view->getData()); $this->petOwnerTable->renderingWithPagination($view, $view->getData()); $this->petOwnerTable->render(); } @@ -193,7 +193,7 @@ protected function setupSpeciesTable() $this->speciesTable->renderingWithCustomisations($view, $view->getData()); $this->speciesTable->renderingWithData($view, $view->getData()); $this->speciesTable->renderingWithFooter($view, $view->getData()); - $this->speciesTable->renderingWithReordering($view, $view->getData()); + $this->speciesTable->renderingWithReordering($view, $view->getData()); $this->speciesTable->renderingWithPagination($view, $view->getData()); $this->speciesTable->render(); } @@ -215,7 +215,7 @@ protected function setupUnpaginatedTable() $this->unpaginatedTable->renderingWithCustomisations($view, $view->getData()); $this->unpaginatedTable->renderingWithData($view, $view->getData()); $this->unpaginatedTable->renderingWithFooter($view, $view->getData()); - $this->unpaginatedTable->renderingWithReordering($view, $view->getData()); + $this->unpaginatedTable->renderingWithReordering($view, $view->getData()); $this->unpaginatedTable->renderingWithPagination($view, $view->getData()); $this->unpaginatedTable->render(); diff --git a/tests/Unit/Traits/WithCustomisationsTest.php b/tests/Unit/Traits/WithCustomisationsTest.php index 78204e8f1..64ccf4d36 100644 --- a/tests/Unit/Traits/WithCustomisationsTest.php +++ b/tests/Unit/Traits/WithCustomisationsTest.php @@ -2,19 +2,20 @@ namespace Rappasoft\LaravelLivewireTables\Tests\Unit\Traits; -use Rappasoft\LaravelLivewireTables\Tests\Http\Livewire\PetsTable; -use Rappasoft\LaravelLivewireTables\Tests\TestCase; -use Livewire\Livewire; use Livewire\Component; use Livewire\Features\SupportPageComponents\PageComponentConfig; +use Livewire\Livewire; +use Rappasoft\LaravelLivewireTables\Tests\Http\Livewire\PetsTable; +use Rappasoft\LaravelLivewireTables\Tests\TestCase; final class WithCustomisationsTest extends TestCase { - public function test_can_use_as_nested(): void { - $test = Livewire::test([new class extends Component { - public function render() { + $test = Livewire::test([new class extends Component + { + public function render() + { return <<<'HTML'
ParentComponentTest
@@ -23,23 +24,25 @@ public function render() { HTML; } }, - 'child' => new class extends PetsTable { - public function configure(): void + 'child' => new class extends PetsTable { - parent::configure(); - $this->setLayout('livewire-tables::tests.layout1'); + public function configure(): void + { + parent::configure(); + $this->setLayout('livewire-tables::tests.layout1'); - } - } - ]) - ->assertSee('ParentComponentTest') - ->assertSee('Cartman'); + } + }, + ]) + ->assertSee('ParentComponentTest') + ->assertSee('Cartman'); } public function test_can_use_as_full_page(): void { - $temp = new class extends PetsTable { + $temp = new class extends PetsTable + { public function configure(): void { parent::configure(); @@ -62,7 +65,7 @@ public function configure(): void $temp->renderingWithCustomisations($view, $view->getData()); $temp->renderingWithData($view, $view->getData()); $temp->renderingWithFooter($view, $view->getData()); - $temp->renderingWithReordering($view, $view->getData()); + $temp->renderingWithReordering($view, $view->getData()); $temp->renderingWithPagination($view, $view->getData()); $temp->render(); $layoutConfig = $view->getData()['layoutConfig']; @@ -72,7 +75,8 @@ public function configure(): void public function test_can_set_custom_section(): void { - $temp = new class extends PetsTable { + $temp = new class extends PetsTable + { public function configure(): void { parent::configure(); @@ -95,7 +99,7 @@ public function configure(): void $temp->renderingWithCustomisations($view, $view->getData()); $temp->renderingWithData($view, $view->getData()); $temp->renderingWithFooter($view, $view->getData()); - $temp->renderingWithReordering($view, $view->getData()); + $temp->renderingWithReordering($view, $view->getData()); $temp->renderingWithPagination($view, $view->getData()); $temp->render(); $layoutConfig = $view->getData()['layoutConfig']; @@ -105,7 +109,8 @@ public function configure(): void public function test_can_set_custom_slot(): void { - $temp = new class extends PetsTable { + $temp = new class extends PetsTable + { public function configure(): void { parent::configure(); @@ -128,7 +133,7 @@ public function configure(): void $temp->renderingWithCustomisations($view, $view->getData()); $temp->renderingWithData($view, $view->getData()); $temp->renderingWithFooter($view, $view->getData()); - $temp->renderingWithReordering($view, $view->getData()); + $temp->renderingWithReordering($view, $view->getData()); $temp->renderingWithPagination($view, $view->getData()); $temp->render(); $layoutConfig = $view->getData()['layoutConfig']; @@ -138,7 +143,8 @@ public function configure(): void public function test_can_set_custom_extends(): void { - $temp = new class extends PetsTable { + $temp = new class extends PetsTable + { public function configure(): void { parent::configure(); @@ -161,7 +167,7 @@ public function configure(): void $temp->renderingWithCustomisations($view, $view->getData()); $temp->renderingWithData($view, $view->getData()); $temp->renderingWithFooter($view, $view->getData()); - $temp->renderingWithReordering($view, $view->getData()); + $temp->renderingWithReordering($view, $view->getData()); $temp->renderingWithPagination($view, $view->getData()); $temp->render(); $layoutConfig = $view->getData()['layoutConfig']; @@ -169,6 +175,4 @@ public function configure(): void $this->assertSame($temp->getExtends(), $layoutConfig->view); $this->assertSame('content', $layoutConfig->slotOrSection); } - - }