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

Commit

Permalink
Add tests on latest/oldest & skip/limit
Browse files Browse the repository at this point in the history
  • Loading branch information
GromNaN committed Jul 19, 2023
1 parent 9bda511 commit fb84adf
Showing 1 changed file with 73 additions and 0 deletions.
73 changes: 73 additions & 0 deletions tests/Query/BuilderTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -138,6 +138,47 @@ public static function provideQueryBuilderToMql(): iterable
fn (Builder $builder) => $builder->limit(10)->offset(5)->select('foo', 'bar'),
];

yield 'skip limit' => [
['find' => [[], ['skip' => 5, 'limit' => 10]]],
fn (Builder $builder) => $builder->offset(5)->limit(10),
];

/** @see DatabaseQueryBuilderTest::testLimitsAndOffsets() */
yield 'reset limit' => [
['find' => [[], []]],
fn (Builder $builder) => $builder->limit(10)->limit(null),
];

yield 'limit 0' => [
['find' => [[], []]],
fn (Builder $builder) => $builder->limit(0),
];

yield 'skip take' => [
['find' => [[], ['skip' => 5, 'limit' => 10]]],
fn (Builder $builder) => $builder->skip(5)->take(10),
];

yield 'kip 0 take 0' => [
['find' => [[], []]],
fn (Builder $builder) => $builder->skip(0)->take(0),
];

yield 'skip take negative' => [
['find' => [[], []]],
fn (Builder $builder) => $builder->skip(-5)->take(-10),
];

yield 'skip take null' => [
['find' => [[], []]],
fn (Builder $builder) => $builder->skip(null)->take(null),
];

yield 'skip 5 take null' => [
['find' => [[], ['skip' => 5]]],
fn (Builder $builder) => $builder->skip(5)->take(null),
];

/** @see DatabaseQueryBuilderTest::testOrderBys() */
yield 'orderBy multiple columns' => [
['find' => [[], ['sort' => ['email' => 1, 'age' => -1]]]],
Expand Down Expand Up @@ -343,6 +384,38 @@ function (Builder $builder) {
->select('foo', 'bar'),
];

/** @see DatabaseQueryBuilderTest::testLatest() */
yield 'latest' => [
['find' => [[], ['sort' => ['created_at' => -1]]]],
fn (Builder $builder) => $builder->latest(),
];

yield 'latest limit' => [
['find' => [[], ['sort' => ['created_at' => -1], 'limit' => 1]]],
fn (Builder $builder) => $builder->latest()->limit(1),
];

yield 'latest custom field' => [
['find' => [[], ['sort' => ['updated_at' => -1]]]],
fn (Builder $builder) => $builder->latest('updated_at'),
];

/** @see DatabaseQueryBuilderTest::testOldest() */
yield 'oldest' => [
['find' => [[], ['sort' => ['created_at' => 1]]]],
fn (Builder $builder) => $builder->oldest(),
];

yield 'oldest limit' => [
['find' => [[], ['sort' => ['created_at' => 1], 'limit' => 1]]],
fn (Builder $builder) => $builder->oldest()->limit(1),
];

yield 'oldest custom field' => [
['find' => [[], ['sort' => ['updated_at' => 1]]]],
fn (Builder $builder) => $builder->oldest('updated_at'),
];

yield 'groupBy' => [
['aggregate' => [
[['$group' => ['_id' => ['foo' => '$foo'], 'foo' => ['$last' => '$foo']]]],
Expand Down

0 comments on commit fb84adf

Please sign in to comment.