Skip to content

Commit 6839aef

Browse files
committed
Add unit test for multisearch federation array to object casting
1 parent d4dbf02 commit 6839aef

File tree

1 file changed

+28
-0
lines changed

1 file changed

+28
-0
lines changed

tests/Endpoints/MultiSearchTest.php

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,11 @@
44

55
namespace Tests\Endpoints;
66

7+
use GuzzleHttp\Handler\MockHandler;
8+
use GuzzleHttp\HandlerStack;
9+
use GuzzleHttp\Middleware;
10+
use GuzzleHttp\Psr7\Response;
11+
use Meilisearch\Client;
712
use Meilisearch\Contracts\FederationOptions;
813
use Meilisearch\Contracts\MultiSearchFederation;
914
use Meilisearch\Contracts\SearchQuery;
@@ -159,4 +164,27 @@ public function testMultiSearchWithDistinctAttribute(): void
159164
self::assertCount(1, $response['results'][1]['hits']);
160165
self::assertSame('fantasy', $response['results'][1]['hits'][0]['genre']);
161166
}
167+
168+
public function testMultiSearchFederationCastingToObject(): void
169+
{
170+
$historyContainer = [];
171+
$handlerStack = HandlerStack::create(new MockHandler([
172+
new Response(200, ['content-type' => 'application/json'], json_encode(['results' => []], JSON_THROW_ON_ERROR)),
173+
]));
174+
$handlerStack->push(Middleware::history($historyContainer));
175+
176+
$client = new Client('http://meilisearch', 'apikey', new \GuzzleHttp\Client(['handler' => $handlerStack]));
177+
$client->multiSearch([
178+
(new SearchQuery())->setIndexUid('first'),
179+
(new SearchQuery())->setIndexUid('second'),
180+
],
181+
new MultiSearchFederation()
182+
);
183+
184+
self::assertCount(1, $historyContainer);
185+
186+
$request = $historyContainer[0]['request'];
187+
188+
self::assertSame('{"queries":[{"indexUid":"first"},{"indexUid":"second"}],"federation":{}}', $request->getBody()->getContents());
189+
}
162190
}

0 commit comments

Comments
 (0)