Skip to content

Commit ff38951

Browse files
authored
Add updatedSelectedColumns test for Event (rappasoft#2060)
* Add test for ColumnsSelected Event dispatch * Apply Separate Tests --------- Co-authored-by: lrljoe <[email protected]>
1 parent 2ea9010 commit ff38951

File tree

1 file changed

+98
-0
lines changed

1 file changed

+98
-0
lines changed

tests/Unit/Traits/Helpers/ColumnSelectHelpersTest.php

Lines changed: 98 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,9 @@
22

33
namespace Rappasoft\LaravelLivewireTables\Tests\Unit\Traits\Helpers;
44

5+
use Illuminate\Support\Facades\Event;
6+
use Rappasoft\LaravelLivewireTables\Events\ColumnsSelected;
7+
use Rappasoft\LaravelLivewireTables\Tests\Http\Livewire\PetsTable;
58
use Rappasoft\LaravelLivewireTables\Tests\TestCase;
69

710
final class ColumnSelectHelpersTest extends TestCase
@@ -103,4 +106,99 @@ public function test_get_currently_selected_cols_works(): void
103106
$this->assertSame(8, count($this->basicTable->getDefaultVisibleColumns()));
104107

105108
}
109+
110+
public function test_event_fires_for_columnselect(): void
111+
{
112+
Event::fake();
113+
114+
$testTable = new class extends PetsTable
115+
{
116+
public function configure(): void
117+
{
118+
parent::configure();
119+
}
120+
};
121+
$testTable->configure();
122+
$testTable->boot();
123+
$testTable->bootedComponentUtilities();
124+
$testTable->bootedWithData();
125+
$testTable->bootedWithColumns();
126+
$testTable->bootedWithColumnSelect();
127+
$testTable->bootedWithSecondaryHeader();
128+
$testTable->booted();
129+
130+
$this->assertSame(['id', 'sort', 'name', 'age', 'breed', 'other', 'link', 'rowimg'], $testTable->selectedColumns);
131+
132+
$testTable->disableColumnSelectEvent();
133+
$testTable->selectedColumns = ['id', 'sort', 'name', 'age', 'breed', 'other', 'rowimg'];
134+
$this->assertSame(['id', 'sort', 'name', 'age', 'breed', 'other', 'rowimg'], $testTable->selectedColumns);
135+
$testTable->updatedSelectedColumns();
136+
Event::assertNotDispatched(ColumnsSelected::class);
137+
138+
$testTable->enableColumnSelectEvent();
139+
140+
$testTable->selectedColumns = ['id', 'sort', 'name', 'age', 'breed', 'other', 'link', 'rowimg'];
141+
$this->assertSame(['id', 'sort', 'name', 'age', 'breed', 'other', 'link', 'rowimg'], $testTable->selectedColumns);
142+
$testTable->updatedSelectedColumns();
143+
Event::assertDispatched(ColumnsSelected::class);
144+
145+
}
146+
147+
public function test_event_does_fire_for_columnselect(): void
148+
{
149+
Event::fake();
150+
151+
$testTable = new class extends PetsTable
152+
{
153+
public function configure(): void
154+
{
155+
parent::configure();
156+
$this->enableColumnSelectEvent();
157+
}
158+
};
159+
$testTable->configure();
160+
$testTable->boot();
161+
$testTable->bootedComponentUtilities();
162+
$testTable->bootedWithData();
163+
$testTable->bootedWithColumns();
164+
$testTable->bootedWithColumnSelect();
165+
$testTable->bootedWithSecondaryHeader();
166+
$testTable->booted();
167+
168+
$this->assertSame(['id', 'sort', 'name', 'age', 'breed', 'other', 'link', 'rowimg'], $testTable->selectedColumns);
169+
170+
$testTable->selectedColumns = ['id', 'sort', 'name', 'age', 'breed', 'other', 'link', 'rowimg'];
171+
$this->assertSame(['id', 'sort', 'name', 'age', 'breed', 'other', 'link', 'rowimg'], $testTable->selectedColumns);
172+
$testTable->updatedSelectedColumns();
173+
Event::assertDispatched(ColumnsSelected::class);
174+
175+
}
176+
177+
public function test_event_does_not_fire_for_columnselect(): void
178+
{
179+
Event::fake();
180+
181+
$testTable = new class extends PetsTable
182+
{
183+
public function configure(): void
184+
{
185+
parent::configure();
186+
$this->disableColumnSelectEvent();
187+
}
188+
};
189+
$testTable->configure();
190+
$testTable->boot();
191+
$testTable->bootedComponentUtilities();
192+
$testTable->bootedWithData();
193+
$testTable->bootedWithColumns();
194+
$testTable->bootedWithColumnSelect();
195+
$testTable->bootedWithSecondaryHeader();
196+
$testTable->booted();
197+
198+
$this->assertSame(['id', 'sort', 'name', 'age', 'breed', 'other', 'link', 'rowimg'], $testTable->selectedColumns);
199+
$testTable->selectedColumns = ['id', 'sort', 'name', 'age', 'breed', 'other', 'rowimg'];
200+
$this->assertSame(['id', 'sort', 'name', 'age', 'breed', 'other', 'rowimg'], $testTable->selectedColumns);
201+
$testTable->updatedSelectedColumns();
202+
Event::assertNotDispatched(ColumnsSelected::class);
203+
}
106204
}

0 commit comments

Comments
 (0)