Skip to content

Response validation does not work when multiple response content-types are defined in the API #288

Description

@tomasvalentaopenbean

Are you using jest or chai?
Chai

Are you using OpenAPI 2, 3.0.X, or 3.1.0?
3.0.3

Describe the bug clearly
When API has defined multiple content-types as possible responses, the validation only picks up the first defined content-type and fails when the API returns the other content-type in the response.

Steps to reproduce the bug:

  1. Define an API that returns 2 content-types:
get:
  summary: Get Something
  operationId: getSomething
  responses:
    '200':
      content:
        text/csv:
          schema:
            type: string
            format: binary
        application/json:
          schema:
            type: array
            items:
              type: string
  1. Send a request that generates the 2nd content-type as a response
  2. An error is received (see below)
 AssertionError: expected res to satisfy API spec

expected res to satisfy the '200' response defined for endpoint 'GET /something' in your API spec

res did not satisfy it because: response must be string

res contained: {
  body: [
    'text1',
    'text2',
    'text3',
    'text4',
    'text5'
  ]
}

The '200' response defined for endpoint 'GET /something' in API spec: {
  '200': {
    description: "Get something.",
    content: {
      'text/csv': { schema: { type: 'string', format: 'binary' } },
      'application/json': {
        schema: { type: 'array', items: { type: 'string' } } }
      }
    }
  }
}

What did you expect to happen instead?
Validation should pass because the response is valid.

Are you going to resolve the issue?

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions