Skip to content

Commit d9906d1

Browse files
authored
Add missing tests for WithCustomisations (rappasoft#2104)
* Add missing tests for WithCustomisations * Fix styling --------- Co-authored-by: lrljoe <[email protected]>
1 parent 2c34c71 commit d9906d1

File tree

3 files changed

+238
-6
lines changed

3 files changed

+238
-6
lines changed

tests/TestCase.php

Lines changed: 47 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,13 @@ protected function setupBasicTable()
103103
$this->basicTable->bootedWithColumnSelect();
104104
$this->basicTable->bootedWithSecondaryHeader();
105105
$this->basicTable->booted();
106-
$this->basicTable->renderingWithPagination($view, []);
106+
$this->basicTable->renderingWithColumns($view, $view->getData());
107+
$this->basicTable->renderingWithColumnSelect($view, $view->getData());
108+
$this->basicTable->renderingWithCustomisations($view, $view->getData());
109+
$this->basicTable->renderingWithData($view, $view->getData());
110+
$this->basicTable->renderingWithFooter($view, $view->getData());
111+
$this->basicTable->renderingWithReordering($view, $view->getData());
112+
$this->basicTable->renderingWithPagination($view, $view->getData());
107113
$this->basicTable->render();
108114
}
109115

@@ -118,7 +124,14 @@ protected function setupEventsTable()
118124
$this->eventsTable->bootedWithColumnSelect();
119125
$this->eventsTable->bootedWithSecondaryHeader();
120126
$this->eventsTable->booted();
121-
$this->eventsTable->renderingWithPagination($view, []);
127+
$this->eventsTable->renderingWithColumns($view, $view->getData());
128+
$this->eventsTable->renderingWithColumnSelect($view, $view->getData());
129+
$this->eventsTable->renderingWithCustomisations($view, $view->getData());
130+
$this->eventsTable->renderingWithData($view, $view->getData());
131+
$this->eventsTable->renderingWithFooter($view, $view->getData());
132+
$this->eventsTable->renderingWithReordering($view, $view->getData());
133+
$this->eventsTable->renderingWithPagination($view, $view->getData());
134+
122135
$this->eventsTable->render();
123136
}
124137

@@ -133,7 +146,13 @@ protected function setupBreedsTable()
133146
$this->breedsTable->bootedWithColumnSelect();
134147
$this->breedsTable->bootedWithSecondaryHeader();
135148
$this->breedsTable->booted();
136-
$this->breedsTable->renderingWithPagination($view, []);
149+
$this->breedsTable->renderingWithColumns($view, $view->getData());
150+
$this->breedsTable->renderingWithColumnSelect($view, $view->getData());
151+
$this->breedsTable->renderingWithCustomisations($view, $view->getData());
152+
$this->breedsTable->renderingWithData($view, $view->getData());
153+
$this->breedsTable->renderingWithFooter($view, $view->getData());
154+
$this->breedsTable->renderingWithReordering($view, $view->getData());
155+
$this->breedsTable->renderingWithPagination($view, $view->getData());
137156
$this->breedsTable->render();
138157
}
139158

@@ -148,7 +167,13 @@ protected function setupPetOwnerTable()
148167
$this->petOwnerTable->bootedWithColumnSelect();
149168
$this->petOwnerTable->bootedWithSecondaryHeader();
150169
$this->petOwnerTable->booted();
151-
$this->petOwnerTable->renderingWithPagination($view, []);
170+
$this->petOwnerTable->renderingWithColumns($view, $view->getData());
171+
$this->petOwnerTable->renderingWithColumnSelect($view, $view->getData());
172+
$this->petOwnerTable->renderingWithCustomisations($view, $view->getData());
173+
$this->petOwnerTable->renderingWithData($view, $view->getData());
174+
$this->petOwnerTable->renderingWithFooter($view, $view->getData());
175+
$this->petOwnerTable->renderingWithReordering($view, $view->getData());
176+
$this->petOwnerTable->renderingWithPagination($view, $view->getData());
152177
$this->petOwnerTable->render();
153178
}
154179

@@ -163,7 +188,13 @@ protected function setupSpeciesTable()
163188
$this->speciesTable->bootedWithColumnSelect();
164189
$this->speciesTable->bootedWithSecondaryHeader();
165190
$this->speciesTable->booted();
166-
$this->speciesTable->renderingWithPagination($view, []);
191+
$this->speciesTable->renderingWithColumns($view, $view->getData());
192+
$this->speciesTable->renderingWithColumnSelect($view, $view->getData());
193+
$this->speciesTable->renderingWithCustomisations($view, $view->getData());
194+
$this->speciesTable->renderingWithData($view, $view->getData());
195+
$this->speciesTable->renderingWithFooter($view, $view->getData());
196+
$this->speciesTable->renderingWithReordering($view, $view->getData());
197+
$this->speciesTable->renderingWithPagination($view, $view->getData());
167198
$this->speciesTable->render();
168199
}
169200

@@ -179,7 +210,13 @@ protected function setupUnpaginatedTable()
179210
$this->unpaginatedTable->bootedWithColumnSelect();
180211
$this->unpaginatedTable->bootedWithSecondaryHeader();
181212
$this->unpaginatedTable->booted();
182-
$this->unpaginatedTable->renderingWithPagination($view, []);
213+
$this->unpaginatedTable->renderingWithColumns($view, $view->getData());
214+
$this->unpaginatedTable->renderingWithColumnSelect($view, $view->getData());
215+
$this->unpaginatedTable->renderingWithCustomisations($view, $view->getData());
216+
$this->unpaginatedTable->renderingWithData($view, $view->getData());
217+
$this->unpaginatedTable->renderingWithFooter($view, $view->getData());
218+
$this->unpaginatedTable->renderingWithReordering($view, $view->getData());
219+
$this->unpaginatedTable->renderingWithPagination($view, $view->getData());
183220
$this->unpaginatedTable->render();
184221

185222
}
@@ -202,6 +239,10 @@ public function getEnvironmentSetUp($app): void
202239
config()->set('view.cache', false);
203240
config()->set('view.compiled', realpath(storage_path('framework/views')).'/'.rand(0, 100));
204241
// config()->set('livewire-tables.use_json_translations', true);
242+
$app['config']->set('view.paths', [
243+
__DIR__.'/views',
244+
resource_path('views'),
245+
]);
205246

206247
$app['config']->set('app.env', 'testing');
207248
$app['config']->set('database.default', 'sqlite');
Lines changed: 178 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,178 @@
1+
<?php
2+
3+
namespace Rappasoft\LaravelLivewireTables\Tests\Unit\Traits;
4+
5+
use Livewire\Component;
6+
use Livewire\Features\SupportPageComponents\PageComponentConfig;
7+
use Livewire\Livewire;
8+
use Rappasoft\LaravelLivewireTables\Tests\Http\Livewire\PetsTable;
9+
use Rappasoft\LaravelLivewireTables\Tests\TestCase;
10+
11+
final class WithCustomisationsTest extends TestCase
12+
{
13+
public function test_can_use_as_nested(): void
14+
{
15+
$test = Livewire::test([new class extends Component
16+
{
17+
public function render()
18+
{
19+
return <<<'HTML'
20+
<div>
21+
<div>ParentComponentTest</div>
22+
<div> <livewire:child /></div>
23+
</div>
24+
HTML;
25+
}
26+
},
27+
'child' => new class extends PetsTable
28+
{
29+
public function configure(): void
30+
{
31+
parent::configure();
32+
$this->setLayout('livewire-tables::tests.layout1');
33+
34+
}
35+
},
36+
])
37+
->assertSee('ParentComponentTest')
38+
->assertSee('Cartman');
39+
40+
}
41+
42+
public function test_can_use_as_full_page(): void
43+
{
44+
$temp = new class extends PetsTable
45+
{
46+
public function configure(): void
47+
{
48+
parent::configure();
49+
50+
$this->setLayout('livewire-tables::tests.layout1');
51+
52+
}
53+
};
54+
$view = view('livewire-tables::datatable');
55+
56+
$temp->boot();
57+
$temp->bootedComponentUtilities();
58+
$temp->bootedWithData();
59+
$temp->bootedWithColumns();
60+
$temp->bootedWithColumnSelect();
61+
$temp->bootedWithSecondaryHeader();
62+
$temp->booted();
63+
$temp->renderingWithColumns($view, $view->getData());
64+
$temp->renderingWithColumnSelect($view, $view->getData());
65+
$temp->renderingWithCustomisations($view, $view->getData());
66+
$temp->renderingWithData($view, $view->getData());
67+
$temp->renderingWithFooter($view, $view->getData());
68+
$temp->renderingWithReordering($view, $view->getData());
69+
$temp->renderingWithPagination($view, $view->getData());
70+
$temp->render();
71+
$layoutConfig = $view->getData()['layoutConfig'];
72+
73+
$this->assertSame($temp->getLayout(), $layoutConfig->view);
74+
}
75+
76+
public function test_can_set_custom_section(): void
77+
{
78+
$temp = new class extends PetsTable
79+
{
80+
public function configure(): void
81+
{
82+
parent::configure();
83+
84+
$this->setSection('test-section-1');
85+
86+
}
87+
};
88+
$view = view('livewire-tables::datatable');
89+
90+
$temp->boot();
91+
$temp->bootedComponentUtilities();
92+
$temp->bootedWithData();
93+
$temp->bootedWithColumns();
94+
$temp->bootedWithColumnSelect();
95+
$temp->bootedWithSecondaryHeader();
96+
$temp->booted();
97+
$temp->renderingWithColumns($view, $view->getData());
98+
$temp->renderingWithColumnSelect($view, $view->getData());
99+
$temp->renderingWithCustomisations($view, $view->getData());
100+
$temp->renderingWithData($view, $view->getData());
101+
$temp->renderingWithFooter($view, $view->getData());
102+
$temp->renderingWithReordering($view, $view->getData());
103+
$temp->renderingWithPagination($view, $view->getData());
104+
$temp->render();
105+
$layoutConfig = $view->getData()['layoutConfig'];
106+
107+
$this->assertSame($temp->getSection(), $layoutConfig->slotOrSection);
108+
}
109+
110+
public function test_can_set_custom_slot(): void
111+
{
112+
$temp = new class extends PetsTable
113+
{
114+
public function configure(): void
115+
{
116+
parent::configure();
117+
118+
$this->setSlot('test-slot-1');
119+
120+
}
121+
};
122+
$view = view('livewire-tables::datatable');
123+
124+
$temp->boot();
125+
$temp->bootedComponentUtilities();
126+
$temp->bootedWithData();
127+
$temp->bootedWithColumns();
128+
$temp->bootedWithColumnSelect();
129+
$temp->bootedWithSecondaryHeader();
130+
$temp->booted();
131+
$temp->renderingWithColumns($view, $view->getData());
132+
$temp->renderingWithColumnSelect($view, $view->getData());
133+
$temp->renderingWithCustomisations($view, $view->getData());
134+
$temp->renderingWithData($view, $view->getData());
135+
$temp->renderingWithFooter($view, $view->getData());
136+
$temp->renderingWithReordering($view, $view->getData());
137+
$temp->renderingWithPagination($view, $view->getData());
138+
$temp->render();
139+
$layoutConfig = $view->getData()['layoutConfig'];
140+
141+
$this->assertSame($temp->getSlot(), $layoutConfig->slotOrSection);
142+
}
143+
144+
public function test_can_set_custom_extends(): void
145+
{
146+
$temp = new class extends PetsTable
147+
{
148+
public function configure(): void
149+
{
150+
parent::configure();
151+
152+
$this->setExtends('test-extends-1');
153+
154+
}
155+
};
156+
$view = view('livewire-tables::datatable');
157+
158+
$temp->boot();
159+
$temp->bootedComponentUtilities();
160+
$temp->bootedWithData();
161+
$temp->bootedWithColumns();
162+
$temp->bootedWithColumnSelect();
163+
$temp->bootedWithSecondaryHeader();
164+
$temp->booted();
165+
$temp->renderingWithColumns($view, $view->getData());
166+
$temp->renderingWithColumnSelect($view, $view->getData());
167+
$temp->renderingWithCustomisations($view, $view->getData());
168+
$temp->renderingWithData($view, $view->getData());
169+
$temp->renderingWithFooter($view, $view->getData());
170+
$temp->renderingWithReordering($view, $view->getData());
171+
$temp->renderingWithPagination($view, $view->getData());
172+
$temp->render();
173+
$layoutConfig = $view->getData()['layoutConfig'];
174+
$this->assertSame('extends', $layoutConfig->type);
175+
$this->assertSame($temp->getExtends(), $layoutConfig->view);
176+
$this->assertSame('content', $layoutConfig->slotOrSection);
177+
}
178+
}

tests/views/layouts/app.blade.php

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
<html>
2+
<head>
3+
<meta name="csrf-token" content="{{ csrf_token() }}">
4+
</head>
5+
<body>
6+
Laravel Testing Layout
7+
<div>
8+
{{ $slot }}
9+
</div>
10+
</body>
11+
</html>
12+
13+

0 commit comments

Comments
 (0)