Skip to content
This repository was archived by the owner on May 13, 2021. It is now read-only.

Commit ae318c4

Browse files
authored
Merge pull request #20 from alifjafar/master
fix pagination
2 parents e801e0e + c14a9c8 commit ae318c4

File tree

2 files changed

+24
-0
lines changed

2 files changed

+24
-0
lines changed

src/Engines/MeilisearchEngine.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,7 @@ public function paginate(Builder $builder, $perPage, $page)
107107
return $this->performSearch($builder, array_filter([
108108
'filters' => $this->filters($builder),
109109
'limit' => $perPage,
110+
'offset' => ($page - 1) * $perPage,
110111
]));
111112
}
112113

tests/MeilisearchEngineTest.php

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -161,6 +161,29 @@ public function update_empty_searchable_array_does_not_add_objects_to_index()
161161
$engine = new MeilisearchEngine($client);
162162
$engine->update(Collection::make([new EmptySearchableModel]));
163163
}
164+
165+
/** @test */
166+
public function pagination_correct_parameters()
167+
{
168+
$perPage = 5;
169+
$page = 2;
170+
171+
$client = m::mock(Client::class);
172+
$client->shouldReceive('getIndex')->with('table')->andReturn($index = m::mock(stdClass::class));
173+
$index->shouldReceive('search')->with('mustang', [
174+
'filters' => 'foo=1',
175+
'limit' => $perPage,
176+
'offset' => ($page - 1) * $perPage,
177+
]);
178+
179+
$engine = new MeilisearchEngine($client);
180+
$builder = new Builder(new SearchableModel, 'mustang', function ($meilisearch, $query, $options) {
181+
$options['filters'] = 'foo=1';
182+
183+
return $meilisearch->search($query, $options);
184+
});
185+
$engine->paginate($builder, $perPage, $page);
186+
}
164187
}
165188

166189
class CustomKeySearchableModel extends SearchableModel

0 commit comments

Comments
 (0)