@@ -117,4 +117,38 @@ public function testSleekPaginateRetainsCriteriaAfterCount(): void
117117 $ this ->assertEquals ('Design ' , $ page ->first ()->title );
118118 $ this ->assertEquals ('Film ' , $ page ->last ()->title );
119119 }
120+
121+ public function testSleekGroupedCriteriasPersistAcrossPaginateCountAndData (): void
122+ {
123+ $ baseline = model (TestEventModel::class)
124+ ->criterias (
125+ [
126+ ['title ' , '= ' , 'Dance ' ],
127+ ['title ' , '= ' , 'Art ' ],
128+ ],
129+ ['country ' , '= ' , 'Ireland ' ]
130+ )
131+ ->orderBy ('title ' , 'asc ' )
132+ ->get ();
133+
134+ $ paginator = model (TestEventModel::class)
135+ ->criterias (
136+ [
137+ ['title ' , '= ' , 'Dance ' ],
138+ ['title ' , '= ' , 'Art ' ],
139+ ],
140+ ['country ' , '= ' , 'Ireland ' ]
141+ )
142+ ->orderBy ('title ' , 'asc ' )
143+ ->paginate (10 , 1 );
144+
145+ $ page = $ paginator ->data ();
146+
147+ $ baselineTitles = array_map (fn ($ event ) => $ event ->title , iterator_to_array ($ baseline ));
148+ $ pageTitles = array_map (fn ($ event ) => $ event ->title , iterator_to_array ($ page ));
149+
150+ $ this ->assertSame (count ($ baseline ), $ paginator ->total ());
151+ $ this ->assertCount (count ($ baseline ), $ page );
152+ $ this ->assertSame ($ baselineTitles , $ pageTitles );
153+ }
120154}
0 commit comments