Skip to content

Commit 814a3ec

Browse files
committed
Add relevant tests
1 parent 8bc411f commit 814a3ec

File tree

4 files changed

+289
-204
lines changed

4 files changed

+289
-204
lines changed
Lines changed: 219 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,219 @@
1+
<?php
2+
3+
namespace Rappasoft\LaravelLivewireTables\Tests\Unit\Traits\Helpers;
4+
5+
use Rappasoft\LaravelLivewireTables\Exceptions\NoColumnsException;
6+
use Rappasoft\LaravelLivewireTables\Tests\Http\Livewire\PetsTable;
7+
use Rappasoft\LaravelLivewireTables\Tests\Models\Pet;
8+
use Rappasoft\LaravelLivewireTables\Tests\TestCase;
9+
use Rappasoft\LaravelLivewireTables\Views\Column;
10+
use Rappasoft\LaravelLivewireTables\Views\Filters\TextFilter;
11+
12+
final class CollapsingColumnsHelpersTest extends TestCase
13+
{
14+
public function test_can_tell_if_there_are_collapsable_columns(): void
15+
{
16+
$this->assertFalse($this->basicTable->hasCollapsedColumns());
17+
18+
$this->assertFalse($this->basicTable->getColumnBySelectName('id')->shouldCollapseOnMobile());
19+
20+
$this->basicTable->getColumnBySelectName('id')->collapseOnMobile();
21+
22+
$this->basicTable->unsetCollapsedStatuses();
23+
24+
$this->assertTrue($this->basicTable->getColumnBySelectName('id')->shouldCollapseOnMobile());
25+
26+
$this->assertTrue($this->basicTable->hasCollapsedColumns());
27+
}
28+
29+
public function test_can_tell_if_columns_should_collapse_on_mobile(): void
30+
{
31+
$this->assertFalse($this->basicTable->shouldCollapseOnMobile());
32+
33+
$this->basicTable->getColumnBySelectName('id')->collapseOnMobile();
34+
35+
$this->basicTable->unsetCollapsedStatuses();
36+
37+
$this->assertTrue($this->basicTable->shouldCollapseOnMobile());
38+
}
39+
40+
public function test_can_get_collapsed_mobile_columns(): void
41+
{
42+
$this->assertCount(0, $this->basicTable->getCollapsedMobileColumns());
43+
44+
$this->basicTable->getColumnBySelectName('id')->collapseOnMobile();
45+
$this->basicTable->getColumnBySelectName('name')->collapseOnMobile();
46+
47+
$this->basicTable->unsetCollapsedStatuses();
48+
49+
$this->assertCount(2, $this->basicTable->getCollapsedMobileColumns());
50+
$this->assertSame('ID', $this->basicTable->getCollapsedMobileColumns()[0]->getTitle());
51+
$this->assertSame('Name', $this->basicTable->getCollapsedMobileColumns()[1]->getTitle());
52+
}
53+
54+
public function test_can_get_collapsed_mobile_columns_count(): void
55+
{
56+
$this->assertSame(0, $this->basicTable->getCollapsedMobileColumnsCount());
57+
58+
$this->basicTable->getColumnBySelectName('id')->collapseOnMobile();
59+
$this->basicTable->getColumnBySelectName('name')->collapseOnMobile();
60+
61+
$this->basicTable->unsetCollapsedStatuses();
62+
63+
$this->assertSame(2, $this->basicTable->getCollapsedMobileColumnsCount());
64+
}
65+
66+
public function test_can_get_visible_mobile_columns(): void
67+
{
68+
$this->assertCount(9, $this->basicTable->getVisibleMobileColumns());
69+
70+
$this->basicTable->getColumnBySelectName('id')->collapseOnMobile();
71+
$this->basicTable->getColumnBySelectName('name')->collapseOnMobile();
72+
73+
$this->basicTable->unsetCollapsedStatuses();
74+
75+
$this->assertCount(7, $this->basicTable->getVisibleMobileColumns());
76+
$this->assertSame('Sort', $this->basicTable->getVisibleMobileColumns()->values()[0]->getTitle());
77+
$this->assertSame('Age', $this->basicTable->getVisibleMobileColumns()->values()[1]->getTitle());
78+
$this->assertSame('Breed', $this->basicTable->getVisibleMobileColumns()->values()[2]->getTitle());
79+
$this->assertSame('Other', $this->basicTable->getVisibleMobileColumns()->values()[3]->getTitle());
80+
}
81+
82+
public function test_can_get_visible_mobile_columns_count(): void
83+
{
84+
$this->assertSame(9, $this->basicTable->getVisibleMobileColumnsCount());
85+
86+
$this->basicTable->getColumnBySelectName('id')->collapseOnMobile();
87+
$this->basicTable->getColumnBySelectName('name')->collapseOnMobile();
88+
89+
$this->assertSame(7, $this->basicTable->getVisibleMobileColumnsCount());
90+
}
91+
92+
public function test_can_tell_if_columns_should_collapse_on_tablet(): void
93+
{
94+
$this->assertFalse($this->basicTable->shouldCollapseOnTablet());
95+
96+
$this->basicTable->getColumnBySelectName('id')->collapseOnTablet();
97+
98+
$this->basicTable->unsetCollapsedStatuses();
99+
100+
$this->assertTrue($this->basicTable->shouldCollapseOnTablet());
101+
}
102+
103+
public function test_can_get_collapsed_tablet_columns(): void
104+
{
105+
$this->assertCount(0, $this->basicTable->getCollapsedTabletColumns());
106+
107+
$this->basicTable->getColumnBySelectName('id')->collapseOnTablet();
108+
$this->basicTable->getColumnBySelectName('name')->collapseOnTablet();
109+
110+
$this->basicTable->unsetCollapsedStatuses();
111+
112+
$this->assertCount(2, $this->basicTable->getCollapsedTabletColumns());
113+
$this->assertSame('ID', $this->basicTable->getCollapsedTabletColumns()[0]->getTitle());
114+
$this->assertSame('Name', $this->basicTable->getCollapsedTabletColumns()[1]->getTitle());
115+
}
116+
117+
public function test_can_get_collapsed_tablet_columns_count(): void
118+
{
119+
$this->assertSame(0, $this->basicTable->getCollapsedTabletColumnsCount());
120+
121+
$this->basicTable->getColumnBySelectName('id')->collapseOnTablet();
122+
$this->basicTable->getColumnBySelectName('name')->collapseOnTablet();
123+
124+
$this->basicTable->unsetCollapsedStatuses();
125+
126+
$this->assertSame(2, $this->basicTable->getCollapsedTabletColumnsCount());
127+
}
128+
129+
public function test_can_get_visible_tablet_columns(): void
130+
{
131+
$this->assertCount(9, $this->basicTable->getVisibleTabletColumns());
132+
133+
$this->basicTable->getColumnBySelectName('id')->collapseOnTablet();
134+
$this->basicTable->getColumnBySelectName('name')->collapseOnTablet();
135+
136+
$this->basicTable->unsetCollapsedStatuses();
137+
138+
$this->assertCount(7, $this->basicTable->getVisibleTabletColumns());
139+
$this->assertSame('Sort', $this->basicTable->getVisibleTabletColumns()->values()[0]->getTitle());
140+
$this->assertSame('Age', $this->basicTable->getVisibleTabletColumns()->values()[1]->getTitle());
141+
$this->assertSame('Breed', $this->basicTable->getVisibleTabletColumns()->values()[2]->getTitle());
142+
$this->assertSame('Other', $this->basicTable->getVisibleTabletColumns()->values()[3]->getTitle());
143+
}
144+
145+
public function test_can_get_visible_tablet_columns_count(): void
146+
{
147+
$this->assertSame(9, $this->basicTable->getVisibleTabletColumnsCount());
148+
149+
$this->basicTable->getColumnBySelectName('id')->collapseOnTablet();
150+
$this->basicTable->getColumnBySelectName('name')->collapseOnTablet();
151+
152+
$this->basicTable->unsetCollapsedStatuses();
153+
154+
$this->assertSame(7, $this->basicTable->getVisibleTabletColumnsCount());
155+
}
156+
157+
// / *** ** //
158+
159+
public function test_can_tell_if_columns_should_collapse_always(): void
160+
{
161+
$this->assertFalse($this->basicTable->shouldCollapseAlways());
162+
163+
$this->basicTable->getColumnBySelectName('id')->collapseAlways();
164+
165+
$this->basicTable->unsetCollapsedStatuses();
166+
167+
$this->assertTrue($this->basicTable->shouldCollapseAlways());
168+
}
169+
170+
public function test_can_get_always_collapsed_columns(): void
171+
{
172+
$this->assertCount(0, $this->basicTable->getCollapsedAlwaysColumns());
173+
174+
$this->basicTable->getColumnBySelectName('id')->collapseAlways();
175+
$this->basicTable->getColumnBySelectName('name')->collapseAlways();
176+
177+
$this->basicTable->unsetCollapsedStatuses();
178+
179+
$this->assertCount(2, $this->basicTable->getCollapsedAlwaysColumns());
180+
$this->assertSame('ID', $this->basicTable->getCollapsedAlwaysColumns()[0]->getTitle());
181+
$this->assertSame('Name', $this->basicTable->getCollapsedAlwaysColumns()[1]->getTitle());
182+
}
183+
184+
public function test_can_get_always_collapsed_columns_count(): void
185+
{
186+
$this->assertSame(0, $this->basicTable->getCollapsedAlwaysColumnsCount());
187+
188+
$this->basicTable->getColumnBySelectName('id')->collapseAlways();
189+
$this->basicTable->getColumnBySelectName('name')->collapseAlways();
190+
191+
$this->basicTable->unsetCollapsedStatuses();
192+
193+
$this->assertSame(2, $this->basicTable->getCollapsedAlwaysColumnsCount());
194+
}
195+
196+
public function test_can_get_collapsed_columns_for_content(): void
197+
{
198+
$this->assertCount(0, $this->basicTable->getCollapsedMobileColumns());
199+
$this->assertCount(0, $this->basicTable->getCollapsedTabletColumns());
200+
201+
$this->basicTable->getColumnBySelectName('id')->collapseOnMobile();
202+
$this->basicTable->getColumnBySelectName('name')->collapseOnTablet();
203+
$this->basicTable->getColumnBySelectName('age')->collapseAlways();
204+
$this->basicTable->unsetCollapsedStatuses();
205+
206+
$this->assertCount(1, $this->basicTable->getCollapsedMobileColumns());
207+
$this->assertCount(1, $this->basicTable->getCollapsedTabletColumns());
208+
$this->assertCount(1, $this->basicTable->getCollapsedAlwaysColumns());
209+
210+
$this->assertSame(3, $this->basicTable->getCollapsedColumnsForContent()->count());
211+
212+
$this->assertSame('ID', $this->basicTable->getCollapsedColumnsForContent()->first()->getTitle());
213+
$this->assertSame('Age', $this->basicTable->getCollapsedColumnsForContent()->last()->getTitle());
214+
$this->assertSame('Name', $this->basicTable->getCollapsedColumnsForContent()->slice(1)->first()->getTitle());
215+
216+
}
217+
218+
219+
}

0 commit comments

Comments
 (0)