Skip to content

Commit 65516e5

Browse files
committed
[#514] Cover grouped criteria persistence across paginator count and data
1 parent bd2cf3b commit 65516e5

1 file changed

Lines changed: 34 additions & 0 deletions

File tree

tests/Unit/Database/Adapters/Sleekdb/Statements/ResultSleekTest.php

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)