Skip to content

Commit 4000903

Browse files
committed
test(metadata): add more tests
1 parent b6fcb19 commit 4000903

File tree

4 files changed

+13
-3
lines changed

4 files changed

+13
-3
lines changed

src/OpenApi/Factory/OpenApiFactory.php

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -337,14 +337,19 @@ private function collectPaths(ApiResource $resource, ResourceMetadataCollection
337337
}
338338

339339
$in = $p instanceof HeaderParameterInterface ? 'header' : 'query';
340+
$defaultSchema = ['type' => 'string'];
341+
if (null !== $p->getDefault()) {
342+
$defaultSchema['default'] = $p->getDefault();
343+
}
344+
340345
$defaultParameter = new Parameter(
341346
$key,
342347
$in,
343348
$p->getDescription() ?? "$resourceShortName $key",
344349
$p->getRequired() ?? false,
345350
false,
346351
null,
347-
$p->getSchema() ?? ['type' => 'string'],
352+
$p->getSchema() ?? $defaultSchema,
348353
);
349354

350355
$linkParameter = $p->getOpenApi();

src/State/Provider/ParameterProvider.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@ private function handlePathParameters(HttpOperation $operation, array $uriVariab
128128
unset($uriVariable->getExtraProperties()['_api_values']);
129129
}
130130

131-
if (($default = $uriVariable->getDefault() ?? false) && ($value instanceof ParameterNotFound || !$value)) {
131+
if (($default = $uriVariable->getDefault() ?? false) && ($value instanceof ParameterNotFound || !$value)) {
132132
$value = $default;
133133
}
134134

src/Symfony/Bundle/Resources/config/jsonld.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@
4242
'%api_platform.serializer.default_context%',
4343
service('api_platform.security.resource_access_checker')->ignoreOnInvalid(),
4444
service('api_platform.http_cache.tag_collector')->ignoreOnInvalid(),
45-
service('api_platform.metadata.operation.metadata_factory')->ignoreOnInvalid()
45+
service('api_platform.metadata.operation.metadata_factory')->ignoreOnInvalid(),
4646
])
4747
->tag('serializer.normalizer', ['priority' => -890]);
4848

tests/Fixtures/TestBundle/ApiResource/WithParameter.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -294,6 +294,10 @@
294294
'foo_as_default' => new QueryParameter(
295295
default: 'foo',
296296
),
297+
'required_with_a_default' => new QueryParameter(
298+
required: true,
299+
default: 'bar'
300+
),
297301
],
298302
provider: [self::class, 'checkParameterDefaults'],
299303
)]
@@ -393,6 +397,7 @@ public static function checkParameterDefaults(Operation $operation, array $uriVa
393397
Assertion::false($operation->getParameters()->get('false_as_default')->getValue());
394398
Assertion::true($operation->getParameters()->get('true_as_default')->getValue());
395399
Assertion::same($operation->getParameters()->get('foo_as_default')->getValue(), 'foo');
400+
Assertion::same($operation->getParameters()->get('required_with_a_default')->getValue(), 'bar');
396401

397402
return new JsonResponse([]);
398403
}

0 commit comments

Comments
 (0)