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