diff --git a/lib/rspec/openapi/schema_merger.rb b/lib/rspec/openapi/schema_merger.rb index da8e0f1c..a18e5d37 100644 --- a/lib/rspec/openapi/schema_merger.rb +++ b/lib/rspec/openapi/schema_merger.rb @@ -33,7 +33,8 @@ def deep_reverse_merge!(base, spec) elsif base[key].is_a?(Array) && value.is_a?(Array) if key == "parameters" # merge arrays - base[key] |= value + keys = base[key].map { |val| val.slice('name', 'in') } + value.each { |val| base[key].push(val) if keys.exclude?(val.slice('name', 'in')) } end else # no-op diff --git a/spec/rails/doc/openapi.yaml b/spec/rails/doc/openapi.yaml index 9d2f3612..eaca4301 100644 --- a/spec/rails/doc/openapi.yaml +++ b/spec/rails/doc/openapi.yaml @@ -176,12 +176,6 @@ paths: schema: type: integer example: 1 - - name: id - in: path - required: true - schema: - type: integer - example: 2 responses: '200': description: returns a table