Skip to content

Commit 64db778

Browse files
committed
Add missing tests for WithCustomisations
1 parent 2c34c71 commit 64db778

File tree

3 files changed

+234
-6
lines changed

3 files changed

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

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)