From b990437a3203a358cc5f9df74037a44adb8e35c1 Mon Sep 17 00:00:00 2001 From: Maxcastel Date: Tue, 10 Mar 2026 16:59:59 +0100 Subject: [PATCH] fix(openapi): correct openapi errors --- .redocly.lint-ignore.yaml | 374 ++++++++++++++++++ .../TestBundle/ApiResource/DummyWebhook.php | 2 +- .../Entity/Issue6041/NumericValidated.php | 4 +- .../TestBundle/Entity/Issue7135/Foo.php | 2 +- tests/Fixtures/app/ruleset.yaml | 4 + tests/Functional/Issues/Issue7135Test.php | 4 +- tests/Functional/OpenApiTest.php | 2 +- 7 files changed, 385 insertions(+), 7 deletions(-) create mode 100644 .redocly.lint-ignore.yaml diff --git a/.redocly.lint-ignore.yaml b/.redocly.lint-ignore.yaml new file mode 100644 index 00000000000..e0646811a77 --- /dev/null +++ b/.redocly.lint-ignore.yaml @@ -0,0 +1,374 @@ +# This file instructs Redocly's linter to ignore the rules contained for specific parts of your API. +# See https://redocly.com/docs/cli/ for more information. +openapi.json: + info-license: + - '#/info' + operation-4xx-response: + - '#/paths/~1absolute_url_dummies/get/responses' + - >- + #/paths/~1absolute_url_relation_dummies~1{id}~1absolute_url_dummies/get/responses + - '#/paths/~1absolute_url_relation_dummies/get/responses' + - '#/paths/~1abstract_dummies/get/responses' + - '#/paths/~1custom_users/get/responses' + - '#/paths/~1addresses/get/responses' + - '#/paths/~1agents/get/responses' + - '#/paths/~1animals/get/responses' + - '#/paths/~1animal_observations/get/responses' + - '#/paths/~1answers/get/responses' + - '#/paths/~1array_filter_validators/get/responses' + - '#/paths/~1attribute_default_operations/get/responses' + - '#/paths/~1attribute_resources/get/responses' + - '#/paths/~1availabilities/get/responses' + - '#/paths/~1availability_statuses/get/responses' + - '#/paths/~1backed_enum_integer_resources/get/responses' + - '#/paths/~1backed_enum_string_resources/get/responses' + - '#/paths/~1bag_of_tests/get/responses' + - '#/paths/~1bar6225s/get/responses' + - '#/paths/~1bar6465s/get/responses' + - '#/paths/~1boats/get/responses' + - '#/paths/~1issue-5452~1books/get/responses' + - '#/paths/~1book_dtos/get/responses' + - '#/paths/~1book_store_resources/get/responses' + - '#/paths/~1camps/get/responses' + - '#/paths/~1brands~1renault~1cars/get/responses' + - '#/paths/~1cars/get/responses' + - '#/paths/~1carts/get/responses' + - '#/paths/~1chairs/get/responses' + - '#/paths/~1chickens/get/responses' + - '#/paths/~1chicken_coops/get/responses' + - '#/paths/~1circular_references/get/responses' + - '#/paths/~1item_referenced_in_collection/get/responses' + - '#/paths/~1comments/get/responses' + - '#/paths/~1users~1{userId}~1comments/get/responses' + - '#/paths/~1companies/get/responses' + - '#/paths/~1employees~1{employeeId}~1company/get/responses' + - '#/paths/~1composite_items/get/responses' + - '#/paths/~1composite_key_with_different_types/get/responses' + - '#/paths/~1composite_labels/get/responses' + - '#/paths/~1composite_primitive_items/get/responses' + - '#/paths/~1composite_relations/get/responses' + - '#/paths/~1concrete_dummies/get/responses' + - '#/paths/~1contain_non_resources/get/responses' + - '#/paths/~1contents/get/responses' + - '#/paths/~1converted_booleans/get/responses' + - '#/paths/~1converted_dates/get/responses' + - '#/paths/~1converted_integers/get/responses' + - '#/paths/~1converted_owners/get/responses' + - '#/paths/~1converted_relateds/get/responses' + - '#/paths/~1converted_strings/get/responses' + - '#/paths/~1cruds/get/responses' + - '#/paths/~1custom_action_collection_dummies/get/responses' + - '#/paths/~1custom_action_dummies/get/responses' + - '#/paths/~1short_custom~1denormalization/get/responses' + - '#/paths/~1custom_generated_identifiers/get/responses' + - '#/paths/~1custom_identifier_dummies/get/responses' + - >- + #/paths/~1custom_multiple_identifier_dummies~1{firstId}~1{secondId}/get/responses + - '#/paths/~1custom_normalized_dummies/get/responses' + - '#/paths/~1custom_writable_identifier_dummies/get/responses' + - '#/paths/~1customers/get/responses' + - '#/paths/~1deprecated_resources/get/responses' + - '#/paths/~1deprecation_headers/get/responses' + - '#/paths/~1direct_mercures/get/responses' + - '#/paths/~1disable_item_operations/get/responses' + - '#/paths/~1dto_with_null_values/get/responses' + - '#/paths/~1dummies/get/responses' + - '#/paths/~1dummy_addresses/get/responses' + - '#/paths/~1dummy_aggregate_offers/get/responses' + - '#/paths/~1dummy_products~1{id}~1offers/get/responses' + - >- + #/paths/~1dummy_products~1{id}~1related_products~1{relatedProducts}~1offers/get/responses + - '#/paths/~1dummy_booleans/get/responses' + - '#/paths/~1dummy_cars/get/responses' + - '#/paths/~1dummy_car_colors/get/responses' + - '#/paths/~1dummy_collection_dtos/get/responses' + - '#/paths/~1dummy_contexts/get/responses' + - '#/paths/~1dummy_context_relateds/get/responses' + - '#/paths/~1dummy_custom_formats/get/responses' + - '#/paths/~1dummy_custom_mutations/get/responses' + - '#/paths/~1dummy_custom_queries/get/responses' + - '#/paths/~1dummy_dates/get/responses' + - '#/paths/~1dummy_different_graph_ql_serialization_groups/get/responses' + - '#/paths/~1dummy_dto_custom_output/get/responses' + - '#/paths/~1dummy_dto_customs/get/responses' + - '#/paths/~1dummy_dto_input_outputs/get/responses' + - '#/paths/~1dummy_dto_no_inputs/get/responses' + - '#/paths/~1dummy_dto_no_outputs/get/responses' + - '#/paths/~1dummy_entity_with_constructors/get/responses' + - '#/paths/~1dummy_exception_to_statuses/get/responses' + - '#/paths/~1dummy_foo_collection_dtos/get/responses' + - '#/paths/~1dummy_for_additional_fields/get/responses' + - '#/paths/~1dummy_for_additional_fields_inputs/get/responses' + - '#/paths/~1backed_enum_filter/get/responses' + - '#/paths/~1dummy_friends/get/responses' + - '#/paths/~1dummy_groups/get/responses' + - '#/paths/~1dummy_id_collection_dtos/get/responses' + - '#/paths/~1dummy_immutable_dates/get/responses' + - '#/paths/~1dummy_mercures/get/responses' + - '#/paths/~1dummy_aggregate_offers~1{id}~1offers/get/responses' + - '#/paths/~1dummy_offers/get/responses' + - '#/paths/~1dummy_products~1{id}~1offers~1{offers}~1offers/get/responses' + - >- + #/paths/~1dummy_products~1{id}~1related_products~1{relatedProducts}~1offers~1{offers}~1offers/get/responses + - '#/paths/~1dummy_passengers/get/responses' + - '#/paths/~1dummy_php8s/get/responses' + - '#/paths/~1dummy_php8_api_property_attributes/get/responses' + - '#/paths/~1dummy_problems/get/responses' + - '#/paths/~1dummy_products/get/responses' + - '#/paths/~1dummy_products~1{id}~1related_products/get/responses' + - '#/paths/~1dummy_properties/get/responses' + - '#/paths/~1dummy_property_with_default_values/get/responses' + - '#/paths/~1dummy_resource_with_custom_filter/get/responses' + - '#/paths/~1dummy_table_inheritances/get/responses' + - '#/paths/~1dummy_table_inheritance_children/get/responses' + - '#/paths/~1dummy_table_inheritance_different_children/get/responses' + - '#/paths/~1dummy_table_inheritance_relateds/get/responses' + - '#/paths/~1dummy_travels/get/responses' + - '#/paths/~1dummy_validations/get/responses' + - '#/paths/~1dummy_validation_serialized_names/get/responses' + - '#/paths/~1embedded_dummies/get/responses' + - '#/paths/~1companies-by-name~1{name}~1employees/get/responses' + - '#/paths/~1companies~1{companyId}~1employees/get/responses' + - '#/paths/~1entityClassAndCustomProviderResources/get/responses' + - '#/paths/~1EntityClassWithDateTime/get/responses' + - '#/paths/~1entity_with_dto_outputs/get/responses' + - '#/paths/~1entity_with_renamed_getter_and_setters/get/responses' + - '#/paths/~1event_issue5722s/get/responses' + - '#/paths/~1external_users/get/responses' + - '#/paths/~1filter_with_state_options/get/responses' + - >- + #/paths/~1filter_with_state_options_and_no_api_filters_api_resource/get/responses + - '#/paths/~1filtered_boolean_parameters/get/responses' + - '#/paths/~1filtered_date_parameters/get/responses' + - '#/paths/~1filtered_exists_parameters/get/responses' + - '#/paths/~1filtered_numeric_parameters/get/responses' + - '#/paths/~1filtered_order_parameters/get/responses' + - '#/paths/~1filtered_range_parameters/get/responses' + - '#/paths/~1firsts/get/responses' + - '#/paths/~1flex_configs/get/responses' + - '#/paths/~1custom_collection_asc_foos/get/responses' + - '#/paths/~1custom_collection_desc_foos/get/responses' + - '#/paths/~1foos/get/responses' + - '#/paths/~1foo6465s/get/responses' + - '#/paths/~1foo_dummies/get/responses' + - '#/paths/~1forks/get/responses' + - '#/paths/~1fourchettes/get/responses' + - '#/paths/~1fourth_levels/get/responses' + - '#/paths/~1game_play_modes/get/responses' + - '#/paths/~1greetings/get/responses' + - '#/paths/~1people~1{id}~1sent_greetings/get/responses' + - '#/paths/~1issue5735~1groups/get/responses' + - '#/paths/~1hide_hydra_classes/get/responses' + - '#/paths/~1hide_hydra_operations/get/responses' + - '#/paths/~1initialize_inputs/get/responses' + - '#/paths/~1iri_only_dummies/get/responses' + - '#/paths/~1issue5735~1issue5735_users/get/responses' + - '#/paths/~1issue6039_user_apis/get/responses' + - '#/paths/~1issue-6146-childs/get/responses' + - '#/paths/~1issue-6146-parents/get/responses' + - '#/paths/~1issue6317s/get/responses' + - '#/paths/~1issue_7469_dummies~1{id}/get/responses' + - '#/paths/~1events~1{uuid}~1logs/get/responses' + - '#/paths/~1item_log_issue5722s/get/responses' + - '#/paths/~1json_schema_context_dummies/get/responses' + - '#/paths/~1json_stream_resources/get/responses' + - '#/paths/~1jsonld_context_dummies/get/responses' + - '#/paths/~1link_handled_dummies/get/responses' + - '#/paths/~1dummy_with_subresource/get/responses' + - '#/paths/~1mapped_resources/get/responses' + - '#/paths/~1mapped_resource_odms/get/responses' + - '#/paths/~1mapped_resource_source_onlies/get/responses' + - '#/paths/~1max_depth_dummies/get/responses' + - '#/paths/~1max_depth_eager_dummies/get/responses' + - '#/paths/~1media/get/responses' + - '#/paths/~1media_objects/get/responses' + - '#/paths/~1messenger_with_inputs/get/responses' + - '#/paths/~1messenger_with_responses/get/responses' + - '#/paths/~1module_resources/get/responses' + - '#/paths/~1multi_relations_dummies/get/responses' + - '#/paths/~1multi_relations_nesteds/get/responses' + - '#/paths/~1multi_relations_nested_paginateds/get/responses' + - '#/paths/~1multi_relations_related_dummies/get/responses' + - '#/paths/~1multi_relations_resolve_dummies/get/responses' + - '#/paths/~1music_groups/get/responses' + - '#/paths/~1nests/get/responses' + - '#/paths/~1network_path_dummies/get/responses' + - >- + #/paths/~1network_path_relation_dummies~1{id}~1network_path_dummies/get/responses + - '#/paths/~1network_path_relation_dummies/get/responses' + - '#/paths/~1no_hydra_prefixes/get/responses' + - '#/paths/~1non_cloneable_dummies/get/responses' + - '#/paths/~1non_relation_resources/get/responses' + - '#/paths/~1numeric-validated/get/responses' + - '#/paths/~1operation_with_default_formats/get/responses' + - '#/paths/~1optional_required_dummies/get/responses' + - '#/paths/~1orders/get/responses' + - '#/paths/~1output_and_entity_classes/get/responses' + - '#/paths/~1overridden_operation_dummies/get/responses' + - '#/paths/~1override~1swagger/get/responses' + - '#/paths/~1override_open_api_responses/post/responses' + - '#/paths/~1pagination_disabled_entities/get/responses' + - '#/paths/~1pagination_entities/get/responses' + - '#/paths/~1partial_pagination_mapped_resources/get/responses' + - '#/paths/~1patch_dummies/get/responses' + - '#/paths/~1patch_dummy_relations/get/responses' + - '#/paths/~1payments/get/responses' + - '#/paths/~1people_5438/get/responses' + - '#/paths/~1people/get/responses' + - '#/paths/~1pets/get/responses' + - '#/paths/~1plain_object_dummies/get/responses' + - '#/paths/~1json-stream-products/get/responses' + - '#/paths/~1products~1{code}/get/responses' + - '#/paths/~1product_with_query_parameters/get/responses' + - '#/paths/~1programs/get/responses' + - '#/paths/~1users~1{author}~1programs/get/responses' + - '#/paths/~1property_collection_iri_onlies/get/responses' + - '#/paths/~1parent~1{parentId}~1another-collection-operations/get/responses' + - '#/paths/~1property-collection-relations/get/responses' + - '#/paths/~1property-collection-relation-second-levels/get/responses' + - >- + #/paths/~1property_collection_iri_only_relations~1{parentId}~1children/get/responses + - '#/paths/~1property-uri-template~1one-to-ones/get/responses' + - '#/paths/~1provider_entities/get/responses' + - '#/paths/~1answers~1{id}~1related_questions/get/responses' + - '#/paths/~1questions/get/responses' + - '#/paths/~1questions~1{id}~1answer~1related_questions/get/responses' + - '#/paths/~1ramsey_uuid_dummies/get/responses' + - '#/paths/~1readable_only_properties/get/responses' + - '#/paths/~1dummies~1{id}~1related_dummies/get/responses' + - '#/paths/~1related_dummies/get/responses' + - >- + #/paths/~1related_owned_dummies~1{id}~1owning_dummy~1related_dummies/get/responses + - >- + #/paths/~1related_owning_dummies~1{id}~1owned_dummy~1related_dummies/get/responses + - '#/paths/~1related_entities/get/responses' + - '#/paths/~1related_linked_dummies/get/responses' + - '#/paths/~1secured_dummies~1{securedDummyId}~1related~1{id}/get/responses' + - '#/paths/~1secured_dummies~1{securedDummyId}~1to_from/get/responses' + - '#/paths/~1secured_dummies~1{securedDummyId}~1with_name/get/responses' + - '#/paths/~1related_normalized_dummies/get/responses' + - '#/paths/~1related_owned_dummies/get/responses' + - '#/paths/~1related_owning_dummies/get/responses' + - >- + #/paths/~1dummies~1{id}~1related_dummies~1{relatedDummies}~1related_to_dummy_friends/get/responses + - >- + #/paths/~1related_dummies~1{id}~1id~1related_to_dummy_friends/get/responses + - '#/paths/~1related_dummies~1{id}~1related_to_dummy_friends/get/responses' + - >- + #/paths/~1related_owned_dummies~1{id}~1owning_dummy~1related_dummies~1{relatedDummies}~1related_to_dummy_friends/get/responses + - >- + #/paths/~1related_owning_dummies~1{id}~1owned_dummy~1related_dummies~1{relatedDummies}~1related_to_dummy_friends/get/responses + - '#/paths/~1related_to_dummy_friends/get/responses' + - '#/paths/~1relation1s/get/responses' + - '#/paths/~1relation2s/get/responses' + - '#/paths/~1relation3s/get/responses' + - '#/paths/~1relation_embedders/get/responses' + - '#/paths/~1relation_group_impact_on_collections/get/responses' + - '#/paths/~1relation_group_impact_on_collection_relations/get/responses' + - '#/paths/~1dummy~1{firstId}~1relations/get/responses' + - '#/paths/~1resources/get/responses' + - '#/paths/~1resource_bar_interfaces/get/responses' + - '#/paths/~1resource_interfaces/get/responses' + - '#/paths/~1resource_relateds/get/responses' + - '#/paths/~1resource_with_booleans/get/responses' + - '#/paths/~1resource_with_enum_properties/get/responses' + - '#/paths/~1resource_with_floats/get/responses' + - '#/paths/~1resource_with_integers/get/responses' + - '#/paths/~1resource_with_strings/get/responses' + - '#/paths/~1seconds/get/responses' + - >- + #/paths/~1related_linked_dummies~1{relatedDummyId}~1from_from/get/responses + - '#/paths/~1security_after_resolvers/get/responses' + - '#/paths/~1separated_entities/get/responses' + - '#/paths/~1serializable_resources/get/responses' + - '#/paths/~1sites/get/responses' + - '#/paths/~1slug_child_dummies/get/responses' + - >- + #/paths/~1slug_child_dummies~1{slug}~1parent_dummy~1child_dummies/get/responses + - '#/paths/~1slug_parent_dummies~1{slug}~1child_dummies/get/responses' + - '#/paths/~1slug_parent_dummies~1{slug}/get/responses' + - '#/paths/~1so_manies/get/responses' + - '#/paths/~1species/get/responses' + - '#/paths/~1cuillers/get/responses' + - '#/paths/~1spoons/get/responses' + - >- + #/paths/~1subresource_organizations~1{subresourceOrganization}~1subresource_employees/get/responses + - >- + #/paths/~1subresource_organizations~1{subresourceOrganizationId}~1subresource_factories/get/responses + - '#/paths/~1subresource_organizations/get/responses' + - '#/paths/~1symfony_uuid_dummies/get/responses' + - '#/paths/~1tables/get/responses' + - '#/paths/~1taxa~1{code}/get/responses' + - '#/paths/~1test_entities/get/responses' + - '#/paths/~1third_levels/get/responses' + - '#/paths/~1my-route/get/responses' + - '#/paths/~1translate_validation_error/get/responses' + - '#/paths/~1tree_dummies/get/responses' + - '#/paths/~1truncated_dummies/get/responses' + - '#/paths/~1upper_case_identifier_dummies/get/responses' + - '#/paths/~1url_encoded_ids/get/responses' + - '#/paths/~1users/get/responses' + - '#/paths/~1users-with-groups/get/responses' + - '#/paths/~1uuid_identifier_dummies/get/responses' + - '#/paths/~1query_parameter_validate_before_read/get/responses' + - '#/paths/~1video_games/get/responses' + - '#/paths/~1vo_dummy_cars/get/responses' + - '#/paths/~1vo_dummy_drivers/get/responses' + - '#/paths/~1vo_dummy_inspections/get/responses' + - '#/paths/~1vo_dummy_insurance_companies/get/responses' + - '#/paths/~1void_payments/get/responses' + - '#/paths/~1with_json_dummies/get/responses' + - '#/paths/~1header_boolean/get/responses' + - '#/paths/~1header_float/get/responses' + - '#/paths/~1header_integer/get/responses' + - '#/paths/~1header_required/get/responses' + - '#/paths/~1query_boolean/get/responses' + - '#/paths/~1query_float/get/responses' + - '#/paths/~1query_integer/get/responses' + - '#/paths/~1with_disabled_parameter_validation/get/responses' + - '#/paths/~1with_parameters_collection/get/responses' + - '#/paths/~1with_parameters_countries/get/responses' + - '#/paths/~1with_parameters_country/get/responses' + - '#/paths/~1with_parameters_filter_without_property/get/responses' + - '#/paths/~1with_parameters_header_and_query/get/responses' + - '#/paths/~1with_security_parameters_collection/get/responses' + - '#/paths/~1writable_ids/get/responses' + - '#/paths/~1fileconfigdummies/get/responses' + - '#/paths/~1issue6673_multiple_parameter_provider/get/responses' + - '#/paths/~1single_file_configs/get/responses' + operation-2xx-response: + - >- + #/paths/~1dummy~1{dummyId}~1attribute_resources~1{identifier}/get/responses + - >- + #/paths/~1dummy~1{dummyId}~1attribute_resources~1{identifier}/patch/responses + - '#/paths/~1redirect_to_foobar/get/responses' + struct: + - '#/components/schemas/Bar6225.jsonapi/properties/included/items/anyOf/0' + - '#/components/schemas/BrokenDocs.jsonapi/properties/included/items/anyOf/0' + - '#/components/schemas/FooDummy.jsonapi/properties/included/items/anyOf/0' + - '#/components/schemas/GenIdFalse.jsonapi/properties/included/items/anyOf/0' + - '#/components/schemas/ProductCode.jsonapi/properties/included/items/anyOf/0' + - >- + #/components/schemas/MappedResourceWithRelation.jsonapi/properties/included/items/anyOf/0 + - '#/components/schemas/Product.jsonapi/properties/included/items/anyOf/0' + - >- + #/components/schemas/PropertyCollectionIriOnly.jsonapi/properties/included/items/anyOf/0 + - >- + #/components/schemas/PropertyCollectionIriOnly.jsonapi/properties/included/items/anyOf/1 + - >- + #/components/schemas/PropertyCollectionIriOnlyRelation.jsonapi/properties/included/items/anyOf/1 + - >- + #/components/schemas/PropertyCollectionIriOnlyRelationSecondLevel.jsonapi/properties/included/items/anyOf/0 + - >- + #/components/schemas/issue5584_business.jsonapi/properties/included/items/anyOf/0 + no-enum-type-mismatch: + - '#/paths/~1backed_enum_filter/get/parameters/6/schema/enum/0' + - '#/paths/~1backed_enum_filter/get/parameters/6/schema/enum/1' + - '#/paths/~1backed_enum_filter/get/parameters/7/schema/items/enum/0' + - '#/paths/~1backed_enum_filter/get/parameters/7/schema/items/enum/1' + no-unused-components: + - '#/components/schemas/OverrideOpenApiResponses.graphql' + - '#/components/schemas/OverrideOpenApiResponses.html' + - '#/components/schemas/OverrideOpenApiResponses.jsonapi' + - '#/components/schemas/OverrideOpenApiResponses.multipart' + - '#/components/schemas/OverrideOpenApiResponses.xml' diff --git a/tests/Fixtures/TestBundle/ApiResource/DummyWebhook.php b/tests/Fixtures/TestBundle/ApiResource/DummyWebhook.php index 1386bb047d6..fec9b517232 100644 --- a/tests/Fixtures/TestBundle/ApiResource/DummyWebhook.php +++ b/tests/Fixtures/TestBundle/ApiResource/DummyWebhook.php @@ -21,7 +21,7 @@ use ApiPlatform\OpenApi\Model\PathItem; #[ApiResource(operations: [new Get(openapi: new Webhook( - name: 'a', + name: 'a/{id}', pathItem: new PathItem( get: new Operation( summary: 'Something else here', diff --git a/tests/Fixtures/TestBundle/Entity/Issue6041/NumericValidated.php b/tests/Fixtures/TestBundle/Entity/Issue6041/NumericValidated.php index 6954e5b3d3e..f0d319ca3cf 100644 --- a/tests/Fixtures/TestBundle/Entity/Issue6041/NumericValidated.php +++ b/tests/Fixtures/TestBundle/Entity/Issue6041/NumericValidated.php @@ -39,7 +39,7 @@ class NumericValidated #[ORM\Column] public int $greaterThanMe; - #[Assert\GreaterThanOrEqual(value: '10.99')] + #[Assert\GreaterThanOrEqual(value: 10.99)] #[ORM\Column] public float $greaterThanOrEqualToMe; @@ -47,7 +47,7 @@ class NumericValidated #[ORM\Column] public int $lessThanMe; - #[Assert\LessThanOrEqual(value: '99.33')] + #[Assert\LessThanOrEqual(value: 99.33)] #[ORM\Column] public float $lessThanOrEqualToMe; diff --git a/tests/Fixtures/TestBundle/Entity/Issue7135/Foo.php b/tests/Fixtures/TestBundle/Entity/Issue7135/Foo.php index b45378e50c8..dd6344b1c22 100644 --- a/tests/Fixtures/TestBundle/Entity/Issue7135/Foo.php +++ b/tests/Fixtures/TestBundle/Entity/Issue7135/Foo.php @@ -23,7 +23,7 @@ shortName: 'FooPr7135', operations: [ new Post( - uriTemplate: '/pull-request-7135/foo/', + uriTemplate: '/pull-request-7135/foo', ), ], normalizationContext: ['iri_only' => true], diff --git a/tests/Fixtures/app/ruleset.yaml b/tests/Fixtures/app/ruleset.yaml index 24f59d7768b..c152f91b96a 100644 --- a/tests/Fixtures/app/ruleset.yaml +++ b/tests/Fixtures/app/ruleset.yaml @@ -9,3 +9,7 @@ rules: component-description: false paths-kebab-case: false no-unnecessary-combinator: false + oas-missing-type: false + oas3-unused-component: false + operation-tags: false + oas3-api-servers: false diff --git a/tests/Functional/Issues/Issue7135Test.php b/tests/Functional/Issues/Issue7135Test.php index 91e6c3f920e..12927799019 100644 --- a/tests/Functional/Issues/Issue7135Test.php +++ b/tests/Functional/Issues/Issue7135Test.php @@ -47,7 +47,7 @@ public function testValidPostRequestWithIriWhenIdentifierIsUuid(): void $this->recreateSchema(self::getResources()); $bar = $this->loadBarFixture(); - $response = self::createClient()->request('POST', '/pull-request-7135/foo/', [ + $response = self::createClient()->request('POST', '/pull-request-7135/foo', [ 'json' => [ 'bar' => 'pull-request-7135/bar/'.$bar->id, ], @@ -63,7 +63,7 @@ public function testInvalidPostRequestWithIriWhenIdentifierIsUuid(): void $this->markTestSkipped(); } - $response = self::createClient()->request('POST', '/pull-request-7135/foo/', [ + $response = self::createClient()->request('POST', '/pull-request-7135/foo', [ 'json' => [ 'bar' => 'pull-request-7135/bar/invalid-uuid', ], diff --git a/tests/Functional/OpenApiTest.php b/tests/Functional/OpenApiTest.php index e65ad3134b7..bf63f52cc2c 100644 --- a/tests/Functional/OpenApiTest.php +++ b/tests/Functional/OpenApiTest.php @@ -357,7 +357,7 @@ public function testRetrieveTheOpenApiDocumentation(): void $this->assertSame('Allows you to reduce the response to contain only the properties you need. If your desired property is nested, you can address it using nested arrays. Example: foobar[]={propertyName}&foobar[]={anotherPropertyName}&foobar[{nestedPropertyParent}][]={nestedProperty}', $json['paths']['/dummy_cars']['get']['parameters'][9]['description']); // Webhook - $this->assertSame('Something else here for example', $json['webhooks']['a']['get']['description']); + $this->assertSame('Something else here for example', $json['webhooks']['a/{id}']['get']['description']); $this->assertSame('Hi! it\'s me, I\'m the problem, it\'s me', $json['webhooks']['b']['post']['description']); // Subcollection - check filter on subResource