Skip to content
This repository was archived by the owner on Aug 22, 2023. It is now read-only.

Commit fb84adf

Browse files
committed
Add tests on latest/oldest & skip/limit
1 parent 9bda511 commit fb84adf

File tree

1 file changed

+73
-0
lines changed

1 file changed

+73
-0
lines changed

tests/Query/BuilderTest.php

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,47 @@ public static function provideQueryBuilderToMql(): iterable
138138
fn (Builder $builder) => $builder->limit(10)->offset(5)->select('foo', 'bar'),
139139
];
140140

141+
yield 'skip limit' => [
142+
['find' => [[], ['skip' => 5, 'limit' => 10]]],
143+
fn (Builder $builder) => $builder->offset(5)->limit(10),
144+
];
145+
146+
/** @see DatabaseQueryBuilderTest::testLimitsAndOffsets() */
147+
yield 'reset limit' => [
148+
['find' => [[], []]],
149+
fn (Builder $builder) => $builder->limit(10)->limit(null),
150+
];
151+
152+
yield 'limit 0' => [
153+
['find' => [[], []]],
154+
fn (Builder $builder) => $builder->limit(0),
155+
];
156+
157+
yield 'skip take' => [
158+
['find' => [[], ['skip' => 5, 'limit' => 10]]],
159+
fn (Builder $builder) => $builder->skip(5)->take(10),
160+
];
161+
162+
yield 'kip 0 take 0' => [
163+
['find' => [[], []]],
164+
fn (Builder $builder) => $builder->skip(0)->take(0),
165+
];
166+
167+
yield 'skip take negative' => [
168+
['find' => [[], []]],
169+
fn (Builder $builder) => $builder->skip(-5)->take(-10),
170+
];
171+
172+
yield 'skip take null' => [
173+
['find' => [[], []]],
174+
fn (Builder $builder) => $builder->skip(null)->take(null),
175+
];
176+
177+
yield 'skip 5 take null' => [
178+
['find' => [[], ['skip' => 5]]],
179+
fn (Builder $builder) => $builder->skip(5)->take(null),
180+
];
181+
141182
/** @see DatabaseQueryBuilderTest::testOrderBys() */
142183
yield 'orderBy multiple columns' => [
143184
['find' => [[], ['sort' => ['email' => 1, 'age' => -1]]]],
@@ -343,6 +384,38 @@ function (Builder $builder) {
343384
->select('foo', 'bar'),
344385
];
345386

387+
/** @see DatabaseQueryBuilderTest::testLatest() */
388+
yield 'latest' => [
389+
['find' => [[], ['sort' => ['created_at' => -1]]]],
390+
fn (Builder $builder) => $builder->latest(),
391+
];
392+
393+
yield 'latest limit' => [
394+
['find' => [[], ['sort' => ['created_at' => -1], 'limit' => 1]]],
395+
fn (Builder $builder) => $builder->latest()->limit(1),
396+
];
397+
398+
yield 'latest custom field' => [
399+
['find' => [[], ['sort' => ['updated_at' => -1]]]],
400+
fn (Builder $builder) => $builder->latest('updated_at'),
401+
];
402+
403+
/** @see DatabaseQueryBuilderTest::testOldest() */
404+
yield 'oldest' => [
405+
['find' => [[], ['sort' => ['created_at' => 1]]]],
406+
fn (Builder $builder) => $builder->oldest(),
407+
];
408+
409+
yield 'oldest limit' => [
410+
['find' => [[], ['sort' => ['created_at' => 1], 'limit' => 1]]],
411+
fn (Builder $builder) => $builder->oldest()->limit(1),
412+
];
413+
414+
yield 'oldest custom field' => [
415+
['find' => [[], ['sort' => ['updated_at' => 1]]]],
416+
fn (Builder $builder) => $builder->oldest('updated_at'),
417+
];
418+
346419
yield 'groupBy' => [
347420
['aggregate' => [
348421
[['$group' => ['_id' => ['foo' => '$foo'], 'foo' => ['$last' => '$foo']]]],

0 commit comments

Comments
 (0)