diff --git a/src/Endpoints/Delegates/HandlesMultiSearch.php b/src/Endpoints/Delegates/HandlesMultiSearch.php index 4cd84f9b..c6e76123 100644 --- a/src/Endpoints/Delegates/HandlesMultiSearch.php +++ b/src/Endpoints/Delegates/HandlesMultiSearch.php @@ -25,7 +25,7 @@ public function multiSearch(array $queries = [], ?MultiSearchFederation $federat $payload = ['queries' => $body]; if (null !== $federation) { - $payload['federation'] = $federation->toArray(); + $payload['federation'] = (object) $federation->toArray(); } return $this->http->post('/multi-search', $payload); diff --git a/tests/Endpoints/HandlesMultiSearchTest.php b/tests/Endpoints/HandlesMultiSearchTest.php new file mode 100644 index 00000000..e0a1344a --- /dev/null +++ b/tests/Endpoints/HandlesMultiSearchTest.php @@ -0,0 +1,35 @@ +firstIndex = $this->createEmptyIndex($this->safeIndexName()); + $this->secondIndex = $this->createEmptyIndex($this->safeIndexName()); + } + + public function testPassingEmptyMultiSearchFederationDoesNotCauseException(): void + { + $this->expectNotToPerformAssertions(); + + $this->client->multiSearch([ + (new SearchQuery())->setIndexUid($this->firstIndex->getUid()), + (new SearchQuery())->setIndexUid($this->secondIndex->getUid()), + ], + new MultiSearchFederation() + ); + } +}