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

Commit 43b7fa5

Browse files
committed
Add tests on latest/oldest & skip/limit
1 parent 6ebcdb5 commit 43b7fa5

File tree

1 file changed

+66
-0
lines changed

1 file changed

+66
-0
lines changed

tests/Query/BuilderTest.php

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -333,12 +333,46 @@ public static function provideQueryBuilderToMql(): iterable
333333
]),
334334
];
335335

336+
336337
/** @see DatabaseQueryBuilderTest::testForPage() */
337338
yield 'forPage' => [
338339
['find' => [[], ['limit' => 20, 'skip' => 40]]],
339340
fn (Builder $builder) => $builder->forPage(3, 20),
340341
];
341342

343+
yield 'skip limit' => [
344+
['find' => [[], ['skip' => 5, 'limit' => 10]]],
345+
fn (Builder $builder) => $builder->offset(5)->limit(10),
346+
];
347+
348+
/** @see DatabaseQueryBuilderTest::testLimitsAndOffsets() */
349+
yield 'offset limit' => [
350+
['find' => [[], ['skip' => 5, 'limit' => 10]]],
351+
fn (Builder $builder) => $builder->offset(5)->limit(10),
352+
];
353+
354+
yield 'offset 0 limit 0' => [
355+
['find' => [[], []]],
356+
fn (Builder $builder) => $builder->offset(0)->limit(0),
357+
];
358+
359+
yield 'offset limit negative' => [
360+
['find' => [[], []]],
361+
fn (Builder $builder) => $builder->offset(-5)->limit(-10),
362+
];
363+
364+
yield 'offset limit null (reset)' => [
365+
['find' => [[], []]],
366+
fn (Builder $builder) => $builder
367+
->offset(5)->limit(10)
368+
->offset(null)->limit(null),
369+
];
370+
371+
yield 'skip take (aliases)' => [
372+
['find' => [[], ['skip' => 5, 'limit' => 10]]],
373+
fn (Builder $builder) => $builder->skip(5)->limit(10),
374+
];
375+
342376
/** @see DatabaseQueryBuilderTest::testOrderBys() */
343377
yield 'orderBy multiple columns' => [
344378
['find' => [[], ['sort' => ['email' => 1, 'age' => -1]]]],
@@ -544,6 +578,38 @@ function (Builder $builder) {
544578
->select('foo', 'bar'),
545579
];
546580

581+
/** @see DatabaseQueryBuilderTest::testLatest() */
582+
yield 'latest' => [
583+
['find' => [[], ['sort' => ['created_at' => -1]]]],
584+
fn (Builder $builder) => $builder->latest(),
585+
];
586+
587+
yield 'latest limit' => [
588+
['find' => [[], ['sort' => ['created_at' => -1], 'limit' => 1]]],
589+
fn (Builder $builder) => $builder->latest()->limit(1),
590+
];
591+
592+
yield 'latest custom field' => [
593+
['find' => [[], ['sort' => ['updated_at' => -1]]]],
594+
fn (Builder $builder) => $builder->latest('updated_at'),
595+
];
596+
597+
/** @see DatabaseQueryBuilderTest::testOldest() */
598+
yield 'oldest' => [
599+
['find' => [[], ['sort' => ['created_at' => 1]]]],
600+
fn (Builder $builder) => $builder->oldest(),
601+
];
602+
603+
yield 'oldest limit' => [
604+
['find' => [[], ['sort' => ['created_at' => 1], 'limit' => 1]]],
605+
fn (Builder $builder) => $builder->oldest()->limit(1),
606+
];
607+
608+
yield 'oldest custom field' => [
609+
['find' => [[], ['sort' => ['updated_at' => 1]]]],
610+
fn (Builder $builder) => $builder->oldest('updated_at'),
611+
];
612+
547613
yield 'groupBy' => [
548614
['aggregate' => [
549615
[['$group' => ['_id' => ['foo' => '$foo'], 'foo' => ['$last' => '$foo']]]],

0 commit comments

Comments
 (0)