attributes->set('bagistoapi.search_metadata', $this->metadata()); $response = (new SearchMetadataResponse())->handle( $request, fn () => response()->json(['member' => []]) ); $this->assertInstanceOf(JsonResponse::class, $response); $this->assertSame($this->metadata(), $response->getData(true)['meta']['searchMetadata']); } public function test_it_adds_search_metadata_to_graphql_extensions(): void { $request = Request::create('/api/graphql', 'POST'); $request->attributes->set('bagistoapi.search_metadata', $this->metadata()); $response = (new SearchMetadataResponse())->handle( $request, fn () => response()->json(['data' => ['products' => []]]) ); $this->assertInstanceOf(JsonResponse::class, $response); $this->assertSame($this->metadata(), $response->getData(true)['extensions']['searchMetadata']); } private function metadata(): array { return [ 'originalQuery' => 'readyy', 'effectiveQuery' => 'ready', 'resultMessage' => 'These are results for: ready', 'searchInsteadMessage' => 'Search instead for readyy', ]; } }