assertJsonValidationErrors(SearchParser::param()); }); test('search attributes', function (): void { $driver = Config::get('scout.driver'); if (blank($driver)) { $this->markTestSkipped('A driver must be configured for this test'); } $q = fake()->word(); $parameters = [ SearchParser::param() => $q, ]; $response = get(route('api.search.show', $parameters)); $response->assertJson([ SearchJsonResource::$wrap => [ AnimeCollection::$wrap => [], ThemeCollection::$wrap => [], ArtistCollection::$wrap => [], PlaylistCollection::$wrap => [], SeriesCollection::$wrap => [], SongCollection::$wrap => [], StudioCollection::$wrap => [], VideoCollection::$wrap => [], ], ]); }); test('search sparse fieldsets', function (): void { $driver = Config::get('scout.driver'); if (blank($driver)) { $this->markTestSkipped('A driver must be configured for this test'); } $fields = [ AnimeCollection::$wrap, ThemeCollection::$wrap, ArtistCollection::$wrap, PlaylistCollection::$wrap, SeriesCollection::$wrap, SongCollection::$wrap, StudioCollection::$wrap, VideoCollection::$wrap, ]; $includedFields = Arr::random($fields, fake()->numberBetween(1, count($fields))); $q = fake()->word(); $parameters = [ SearchParser::param() => $q, FieldParser::param() => [ SearchJsonResource::$wrap => implode(',', $includedFields), ], ]; $response = get(route('api.search.show', $parameters)); $response->assertJsonStructure([ SearchJsonResource::$wrap => $includedFields, ]); });