faker->boolean()); Config::set(FlagConstants::ALLOW_DISCORD_NOTIFICATIONS_FLAG_QUALIFIED, $this->faker->boolean()); Config::set(FlagConstants::ALLOW_VIEW_RECORDING_FLAG_QUALIFIED, $this->faker->boolean()); $response = $this->get(route('api.config.flags.show')); $response->assertJson( json_decode( json_encode( (new FlagsResource(new FlagsReadQuery())) ->response() ->getData() ), true ) ); } /** * The Flags Show Endpoint shall implement sparse fieldsets. * * @return void */ public function testSparseFieldsets(): void { Config::set(FlagConstants::ALLOW_VIDEO_STREAMS_FLAG_QUALIFIED, $this->faker->boolean()); Config::set(FlagConstants::ALLOW_DISCORD_NOTIFICATIONS_FLAG_QUALIFIED, $this->faker->boolean()); Config::set(FlagConstants::ALLOW_VIEW_RECORDING_FLAG_QUALIFIED, $this->faker->boolean()); $schema = new FlagsSchema(); $fields = collect($schema->fields()); $includedFields = $fields->random($this->faker->numberBetween(1, $fields->count())); $parameters = [ FieldParser::param() => [ FlagsResource::$wrap => $includedFields->map(fn (Field $field) => $field->getKey())->join(','), ], ]; $response = $this->get(route('api.config.flags.show')); $response->assertJson( json_decode( json_encode( (new FlagsResource(new FlagsReadQuery($parameters))) ->response() ->getData() ), true ) ); } }