// Jest Snapshot v1, https://goo.gl/fbAQLP

exports[`breaking changes ruleset - parameter enum change "cookie" parameter enum narrowing 1`] = `
[
  {
    "change": {
      "changeType": "changed",
      "changed": {
        "after": {
          "in": "cookie",
          "name": "test",
          "schema": {
            "enum": [
              "b",
            ],
            "type": "string",
          },
        },
        "before": {
          "in": "cookie",
          "name": "test",
          "schema": {
            "enum": [
              "a",
              "b",
            ],
            "type": "string",
          },
        },
      },
      "location": {
        "conceptualLocation": {
          "inRequest": {
            "cookie": "test",
          },
          "method": "get",
          "path": "/api/users",
        },
        "conceptualPath": [
          "operations",
          "/api/users",
          "get",
          "parameters",
          "cookie",
          "test",
        ],
        "jsonPath": "/paths/~1api~1users/get/parameters/0",
        "kind": "cookie-parameter",
      },
    },
    "condition": undefined,
    "docsLink": undefined,
    "error": "cannot remove enum option 'a' from cookie parameter 'test'. This is a breaking change.",
    "exempted": false,
    "expected": undefined,
    "isMust": true,
    "isShould": false,
    "name": "prevent cookie parameters enum breaking changes",
    "passed": false,
    "received": undefined,
    "severity": 2,
    "type": "changed",
    "where": "GET /api/users cookie parameter: test",
  },
  {
    "change": {
      "changeType": "changed",
      "changed": {
        "after": {
          "in": "cookie",
          "name": "test",
          "schema": {
            "enum": [
              "b",
            ],
            "type": "string",
          },
        },
        "before": {
          "in": "cookie",
          "name": "test",
          "schema": {
            "enum": [
              "a",
              "b",
            ],
            "type": "string",
          },
        },
      },
      "location": {
        "conceptualLocation": {
          "inRequest": {
            "cookie": "test",
          },
          "method": "get",
          "path": "/api/users",
        },
        "conceptualPath": [
          "operations",
          "/api/users",
          "get",
          "parameters",
          "cookie",
          "test",
        ],
        "jsonPath": "/paths/~1api~1users/get/parameters/0",
        "kind": "cookie-parameter",
      },
    },
    "condition": undefined,
    "docsLink": undefined,
    "error": undefined,
    "exempted": false,
    "expected": undefined,
    "isMust": true,
    "isShould": false,
    "name": "prevent cookie parameters type changes",
    "passed": true,
    "received": undefined,
    "severity": 2,
    "type": "changed",
    "where": "GET /api/users cookie parameter: test",
  },
  {
    "change": {
      "changeType": "changed",
      "changed": {
        "after": {
          "in": "cookie",
          "name": "test",
          "schema": {
            "enum": [
              "b",
            ],
            "type": "string",
          },
        },
        "before": {
          "in": "cookie",
          "name": "test",
          "schema": {
            "enum": [
              "a",
              "b",
            ],
            "type": "string",
          },
        },
      },
      "location": {
        "conceptualLocation": {
          "inRequest": {
            "cookie": "test",
          },
          "method": "get",
          "path": "/api/users",
        },
        "conceptualPath": [
          "operations",
          "/api/users",
          "get",
          "parameters",
          "cookie",
          "test",
        ],
        "jsonPath": "/paths/~1api~1users/get/parameters/0",
        "kind": "cookie-parameter",
      },
    },
    "condition": undefined,
    "docsLink": undefined,
    "error": undefined,
    "exempted": false,
    "expected": undefined,
    "isMust": true,
    "isShould": false,
    "name": "prevent requiring existing cookie parameters",
    "passed": true,
    "received": undefined,
    "severity": 2,
    "type": "changed",
    "where": "GET /api/users cookie parameter: test",
  },
]
`;

exports[`breaking changes ruleset - parameter enum change "header" parameter enum narrowing 1`] = `
[
  {
    "change": {
      "changeType": "changed",
      "changed": {
        "after": {
          "in": "header",
          "name": "test",
          "schema": {
            "enum": [
              "b",
            ],
            "type": "string",
          },
        },
        "before": {
          "in": "header",
          "name": "test",
          "schema": {
            "enum": [
              "a",
              "b",
            ],
            "type": "string",
          },
        },
      },
      "location": {
        "conceptualLocation": {
          "inRequest": {
            "header": "test",
          },
          "method": "get",
          "path": "/api/users",
        },
        "conceptualPath": [
          "operations",
          "/api/users",
          "get",
          "parameters",
          "header",
          "test",
        ],
        "jsonPath": "/paths/~1api~1users/get/parameters/0",
        "kind": "header-parameter",
      },
    },
    "condition": undefined,
    "docsLink": undefined,
    "error": "cannot remove enum option 'a' from header parameter 'test'. This is a breaking change.",
    "exempted": false,
    "expected": undefined,
    "isMust": true,
    "isShould": false,
    "name": "prevent header parameters enum breaking changes",
    "passed": false,
    "received": undefined,
    "severity": 2,
    "type": "changed",
    "where": "GET /api/users header parameter: test",
  },
  {
    "change": {
      "changeType": "changed",
      "changed": {
        "after": {
          "in": "header",
          "name": "test",
          "schema": {
            "enum": [
              "b",
            ],
            "type": "string",
          },
        },
        "before": {
          "in": "header",
          "name": "test",
          "schema": {
            "enum": [
              "a",
              "b",
            ],
            "type": "string",
          },
        },
      },
      "location": {
        "conceptualLocation": {
          "inRequest": {
            "header": "test",
          },
          "method": "get",
          "path": "/api/users",
        },
        "conceptualPath": [
          "operations",
          "/api/users",
          "get",
          "parameters",
          "header",
          "test",
        ],
        "jsonPath": "/paths/~1api~1users/get/parameters/0",
        "kind": "header-parameter",
      },
    },
    "condition": undefined,
    "docsLink": undefined,
    "error": undefined,
    "exempted": false,
    "expected": undefined,
    "isMust": true,
    "isShould": false,
    "name": "prevent header parameters type changes",
    "passed": true,
    "received": undefined,
    "severity": 2,
    "type": "changed",
    "where": "GET /api/users header parameter: test",
  },
  {
    "change": {
      "changeType": "changed",
      "changed": {
        "after": {
          "in": "header",
          "name": "test",
          "schema": {
            "enum": [
              "b",
            ],
            "type": "string",
          },
        },
        "before": {
          "in": "header",
          "name": "test",
          "schema": {
            "enum": [
              "a",
              "b",
            ],
            "type": "string",
          },
        },
      },
      "location": {
        "conceptualLocation": {
          "inRequest": {
            "header": "test",
          },
          "method": "get",
          "path": "/api/users",
        },
        "conceptualPath": [
          "operations",
          "/api/users",
          "get",
          "parameters",
          "header",
          "test",
        ],
        "jsonPath": "/paths/~1api~1users/get/parameters/0",
        "kind": "header-parameter",
      },
    },
    "condition": undefined,
    "docsLink": undefined,
    "error": undefined,
    "exempted": false,
    "expected": undefined,
    "isMust": true,
    "isShould": false,
    "name": "prevent requiring existing header parameters",
    "passed": true,
    "received": undefined,
    "severity": 2,
    "type": "changed",
    "where": "GET /api/users header parameter: test",
  },
]
`;

exports[`breaking changes ruleset - parameter enum change "path" parameter enum narrowing 1`] = `
[
  {
    "change": {
      "changeType": "changed",
      "changed": {
        "after": {
          "in": "path",
          "name": "test",
          "schema": {
            "enum": [
              "b",
            ],
            "type": "string",
          },
        },
        "before": {
          "in": "path",
          "name": "test",
          "schema": {
            "enum": [
              "a",
              "b",
            ],
            "type": "string",
          },
        },
      },
      "location": {
        "conceptualLocation": {
          "inRequest": {
            "path": "test",
          },
          "method": "get",
          "path": "/api/users",
        },
        "conceptualPath": [
          "operations",
          "/api/users",
          "get",
          "parameters",
          "path",
          "test",
        ],
        "jsonPath": "/paths/~1api~1users/get/parameters/0",
        "kind": "path-parameter",
      },
    },
    "condition": undefined,
    "docsLink": undefined,
    "error": "cannot remove enum option 'a' from path parameter 'test'. This is a breaking change.",
    "exempted": false,
    "expected": undefined,
    "isMust": true,
    "isShould": false,
    "name": "prevent path parameters enum breaking changes",
    "passed": false,
    "received": undefined,
    "severity": 2,
    "type": "changed",
    "where": "GET /api/users path parameter: test",
  },
  {
    "change": {
      "changeType": "changed",
      "changed": {
        "after": {
          "in": "path",
          "name": "test",
          "schema": {
            "enum": [
              "b",
            ],
            "type": "string",
          },
        },
        "before": {
          "in": "path",
          "name": "test",
          "schema": {
            "enum": [
              "a",
              "b",
            ],
            "type": "string",
          },
        },
      },
      "location": {
        "conceptualLocation": {
          "inRequest": {
            "path": "test",
          },
          "method": "get",
          "path": "/api/users",
        },
        "conceptualPath": [
          "operations",
          "/api/users",
          "get",
          "parameters",
          "path",
          "test",
        ],
        "jsonPath": "/paths/~1api~1users/get/parameters/0",
        "kind": "path-parameter",
      },
    },
    "condition": undefined,
    "docsLink": undefined,
    "error": undefined,
    "exempted": false,
    "expected": undefined,
    "isMust": true,
    "isShould": false,
    "name": "prevent path parameters type changes",
    "passed": true,
    "received": undefined,
    "severity": 2,
    "type": "changed",
    "where": "GET /api/users path parameter: test",
  },
]
`;

exports[`breaking changes ruleset - parameter enum change "query" parameter enum narrowing 1`] = `
[
  {
    "change": {
      "changeType": "changed",
      "changed": {
        "after": {
          "in": "query",
          "name": "test",
          "schema": {
            "enum": [
              "b",
            ],
            "type": "string",
          },
        },
        "before": {
          "in": "query",
          "name": "test",
          "schema": {
            "enum": [
              "a",
              "b",
            ],
            "type": "string",
          },
        },
      },
      "location": {
        "conceptualLocation": {
          "inRequest": {
            "query": "test",
          },
          "method": "get",
          "path": "/api/users",
        },
        "conceptualPath": [
          "operations",
          "/api/users",
          "get",
          "parameters",
          "query",
          "test",
        ],
        "jsonPath": "/paths/~1api~1users/get/parameters/0",
        "kind": "query-parameter",
      },
    },
    "condition": undefined,
    "docsLink": undefined,
    "error": "cannot remove enum option 'a' from query parameter 'test'. This is a breaking change.",
    "exempted": false,
    "expected": undefined,
    "isMust": true,
    "isShould": false,
    "name": "prevent query parameters enum breaking changes",
    "passed": false,
    "received": undefined,
    "severity": 2,
    "type": "changed",
    "where": "GET /api/users query parameter: test",
  },
  {
    "change": {
      "changeType": "changed",
      "changed": {
        "after": {
          "in": "query",
          "name": "test",
          "schema": {
            "enum": [
              "b",
            ],
            "type": "string",
          },
        },
        "before": {
          "in": "query",
          "name": "test",
          "schema": {
            "enum": [
              "a",
              "b",
            ],
            "type": "string",
          },
        },
      },
      "location": {
        "conceptualLocation": {
          "inRequest": {
            "query": "test",
          },
          "method": "get",
          "path": "/api/users",
        },
        "conceptualPath": [
          "operations",
          "/api/users",
          "get",
          "parameters",
          "query",
          "test",
        ],
        "jsonPath": "/paths/~1api~1users/get/parameters/0",
        "kind": "query-parameter",
      },
    },
    "condition": undefined,
    "docsLink": undefined,
    "error": undefined,
    "exempted": false,
    "expected": undefined,
    "isMust": true,
    "isShould": false,
    "name": "prevent query parameters type changes",
    "passed": true,
    "received": undefined,
    "severity": 2,
    "type": "changed",
    "where": "GET /api/users query parameter: test",
  },
  {
    "change": {
      "changeType": "changed",
      "changed": {
        "after": {
          "in": "query",
          "name": "test",
          "schema": {
            "enum": [
              "b",
            ],
            "type": "string",
          },
        },
        "before": {
          "in": "query",
          "name": "test",
          "schema": {
            "enum": [
              "a",
              "b",
            ],
            "type": "string",
          },
        },
      },
      "location": {
        "conceptualLocation": {
          "inRequest": {
            "query": "test",
          },
          "method": "get",
          "path": "/api/users",
        },
        "conceptualPath": [
          "operations",
          "/api/users",
          "get",
          "parameters",
          "query",
          "test",
        ],
        "jsonPath": "/paths/~1api~1users/get/parameters/0",
        "kind": "query-parameter",
      },
    },
    "condition": undefined,
    "docsLink": undefined,
    "error": undefined,
    "exempted": false,
    "expected": undefined,
    "isMust": true,
    "isShould": false,
    "name": "prevent requiring existing query parameters",
    "passed": true,
    "received": undefined,
    "severity": 2,
    "type": "changed",
    "where": "GET /api/users query parameter: test",
  },
]
`;

exports[`breaking changes ruleset - parameter enum change const changes picked up as breaking "cookie" parameter 1`] = `
[
  {
    "change": {
      "changeType": "changed",
      "changed": {
        "after": {
          "in": "cookie",
          "name": "test",
          "schema": {
            "const": "b",
            "type": "string",
          },
        },
        "before": {
          "in": "cookie",
          "name": "test",
          "schema": {
            "const": "a",
            "type": "string",
          },
        },
      },
      "location": {
        "conceptualLocation": {
          "inRequest": {
            "cookie": "test",
          },
          "method": "get",
          "path": "/api/users",
        },
        "conceptualPath": [
          "operations",
          "/api/users",
          "get",
          "parameters",
          "cookie",
          "test",
        ],
        "jsonPath": "/paths/~1api~1users/get/parameters/0",
        "kind": "cookie-parameter",
      },
    },
    "condition": undefined,
    "docsLink": undefined,
    "error": "cannot remove enum option 'a' from cookie parameter 'test'. This is a breaking change.",
    "exempted": false,
    "expected": undefined,
    "isMust": true,
    "isShould": false,
    "name": "prevent cookie parameters enum breaking changes",
    "passed": false,
    "received": undefined,
    "severity": 2,
    "type": "changed",
    "where": "GET /api/users cookie parameter: test",
  },
  {
    "change": {
      "changeType": "changed",
      "changed": {
        "after": {
          "in": "cookie",
          "name": "test",
          "schema": {
            "const": "b",
            "type": "string",
          },
        },
        "before": {
          "in": "cookie",
          "name": "test",
          "schema": {
            "const": "a",
            "type": "string",
          },
        },
      },
      "location": {
        "conceptualLocation": {
          "inRequest": {
            "cookie": "test",
          },
          "method": "get",
          "path": "/api/users",
        },
        "conceptualPath": [
          "operations",
          "/api/users",
          "get",
          "parameters",
          "cookie",
          "test",
        ],
        "jsonPath": "/paths/~1api~1users/get/parameters/0",
        "kind": "cookie-parameter",
      },
    },
    "condition": undefined,
    "docsLink": undefined,
    "error": undefined,
    "exempted": false,
    "expected": undefined,
    "isMust": true,
    "isShould": false,
    "name": "prevent cookie parameters type changes",
    "passed": true,
    "received": undefined,
    "severity": 2,
    "type": "changed",
    "where": "GET /api/users cookie parameter: test",
  },
  {
    "change": {
      "changeType": "changed",
      "changed": {
        "after": {
          "in": "cookie",
          "name": "test",
          "schema": {
            "const": "b",
            "type": "string",
          },
        },
        "before": {
          "in": "cookie",
          "name": "test",
          "schema": {
            "const": "a",
            "type": "string",
          },
        },
      },
      "location": {
        "conceptualLocation": {
          "inRequest": {
            "cookie": "test",
          },
          "method": "get",
          "path": "/api/users",
        },
        "conceptualPath": [
          "operations",
          "/api/users",
          "get",
          "parameters",
          "cookie",
          "test",
        ],
        "jsonPath": "/paths/~1api~1users/get/parameters/0",
        "kind": "cookie-parameter",
      },
    },
    "condition": undefined,
    "docsLink": undefined,
    "error": undefined,
    "exempted": false,
    "expected": undefined,
    "isMust": true,
    "isShould": false,
    "name": "prevent requiring existing cookie parameters",
    "passed": true,
    "received": undefined,
    "severity": 2,
    "type": "changed",
    "where": "GET /api/users cookie parameter: test",
  },
]
`;

exports[`breaking changes ruleset - parameter enum change const changes picked up as breaking "header" parameter 1`] = `
[
  {
    "change": {
      "changeType": "changed",
      "changed": {
        "after": {
          "in": "header",
          "name": "test",
          "schema": {
            "const": "b",
            "type": "string",
          },
        },
        "before": {
          "in": "header",
          "name": "test",
          "schema": {
            "const": "a",
            "type": "string",
          },
        },
      },
      "location": {
        "conceptualLocation": {
          "inRequest": {
            "header": "test",
          },
          "method": "get",
          "path": "/api/users",
        },
        "conceptualPath": [
          "operations",
          "/api/users",
          "get",
          "parameters",
          "header",
          "test",
        ],
        "jsonPath": "/paths/~1api~1users/get/parameters/0",
        "kind": "header-parameter",
      },
    },
    "condition": undefined,
    "docsLink": undefined,
    "error": "cannot remove enum option 'a' from header parameter 'test'. This is a breaking change.",
    "exempted": false,
    "expected": undefined,
    "isMust": true,
    "isShould": false,
    "name": "prevent header parameters enum breaking changes",
    "passed": false,
    "received": undefined,
    "severity": 2,
    "type": "changed",
    "where": "GET /api/users header parameter: test",
  },
  {
    "change": {
      "changeType": "changed",
      "changed": {
        "after": {
          "in": "header",
          "name": "test",
          "schema": {
            "const": "b",
            "type": "string",
          },
        },
        "before": {
          "in": "header",
          "name": "test",
          "schema": {
            "const": "a",
            "type": "string",
          },
        },
      },
      "location": {
        "conceptualLocation": {
          "inRequest": {
            "header": "test",
          },
          "method": "get",
          "path": "/api/users",
        },
        "conceptualPath": [
          "operations",
          "/api/users",
          "get",
          "parameters",
          "header",
          "test",
        ],
        "jsonPath": "/paths/~1api~1users/get/parameters/0",
        "kind": "header-parameter",
      },
    },
    "condition": undefined,
    "docsLink": undefined,
    "error": undefined,
    "exempted": false,
    "expected": undefined,
    "isMust": true,
    "isShould": false,
    "name": "prevent header parameters type changes",
    "passed": true,
    "received": undefined,
    "severity": 2,
    "type": "changed",
    "where": "GET /api/users header parameter: test",
  },
  {
    "change": {
      "changeType": "changed",
      "changed": {
        "after": {
          "in": "header",
          "name": "test",
          "schema": {
            "const": "b",
            "type": "string",
          },
        },
        "before": {
          "in": "header",
          "name": "test",
          "schema": {
            "const": "a",
            "type": "string",
          },
        },
      },
      "location": {
        "conceptualLocation": {
          "inRequest": {
            "header": "test",
          },
          "method": "get",
          "path": "/api/users",
        },
        "conceptualPath": [
          "operations",
          "/api/users",
          "get",
          "parameters",
          "header",
          "test",
        ],
        "jsonPath": "/paths/~1api~1users/get/parameters/0",
        "kind": "header-parameter",
      },
    },
    "condition": undefined,
    "docsLink": undefined,
    "error": undefined,
    "exempted": false,
    "expected": undefined,
    "isMust": true,
    "isShould": false,
    "name": "prevent requiring existing header parameters",
    "passed": true,
    "received": undefined,
    "severity": 2,
    "type": "changed",
    "where": "GET /api/users header parameter: test",
  },
]
`;

exports[`breaking changes ruleset - parameter enum change const changes picked up as breaking "path" parameter 1`] = `
[
  {
    "change": {
      "changeType": "changed",
      "changed": {
        "after": {
          "in": "path",
          "name": "test",
          "schema": {
            "const": "b",
            "type": "string",
          },
        },
        "before": {
          "in": "path",
          "name": "test",
          "schema": {
            "const": "a",
            "type": "string",
          },
        },
      },
      "location": {
        "conceptualLocation": {
          "inRequest": {
            "path": "test",
          },
          "method": "get",
          "path": "/api/users",
        },
        "conceptualPath": [
          "operations",
          "/api/users",
          "get",
          "parameters",
          "path",
          "test",
        ],
        "jsonPath": "/paths/~1api~1users/get/parameters/0",
        "kind": "path-parameter",
      },
    },
    "condition": undefined,
    "docsLink": undefined,
    "error": "cannot remove enum option 'a' from path parameter 'test'. This is a breaking change.",
    "exempted": false,
    "expected": undefined,
    "isMust": true,
    "isShould": false,
    "name": "prevent path parameters enum breaking changes",
    "passed": false,
    "received": undefined,
    "severity": 2,
    "type": "changed",
    "where": "GET /api/users path parameter: test",
  },
  {
    "change": {
      "changeType": "changed",
      "changed": {
        "after": {
          "in": "path",
          "name": "test",
          "schema": {
            "const": "b",
            "type": "string",
          },
        },
        "before": {
          "in": "path",
          "name": "test",
          "schema": {
            "const": "a",
            "type": "string",
          },
        },
      },
      "location": {
        "conceptualLocation": {
          "inRequest": {
            "path": "test",
          },
          "method": "get",
          "path": "/api/users",
        },
        "conceptualPath": [
          "operations",
          "/api/users",
          "get",
          "parameters",
          "path",
          "test",
        ],
        "jsonPath": "/paths/~1api~1users/get/parameters/0",
        "kind": "path-parameter",
      },
    },
    "condition": undefined,
    "docsLink": undefined,
    "error": undefined,
    "exempted": false,
    "expected": undefined,
    "isMust": true,
    "isShould": false,
    "name": "prevent path parameters type changes",
    "passed": true,
    "received": undefined,
    "severity": 2,
    "type": "changed",
    "where": "GET /api/users path parameter: test",
  },
]
`;

exports[`breaking changes ruleset - parameter enum change const changes picked up as breaking "query" parameter 1`] = `
[
  {
    "change": {
      "changeType": "changed",
      "changed": {
        "after": {
          "in": "query",
          "name": "test",
          "schema": {
            "const": "b",
            "type": "string",
          },
        },
        "before": {
          "in": "query",
          "name": "test",
          "schema": {
            "const": "a",
            "type": "string",
          },
        },
      },
      "location": {
        "conceptualLocation": {
          "inRequest": {
            "query": "test",
          },
          "method": "get",
          "path": "/api/users",
        },
        "conceptualPath": [
          "operations",
          "/api/users",
          "get",
          "parameters",
          "query",
          "test",
        ],
        "jsonPath": "/paths/~1api~1users/get/parameters/0",
        "kind": "query-parameter",
      },
    },
    "condition": undefined,
    "docsLink": undefined,
    "error": "cannot remove enum option 'a' from query parameter 'test'. This is a breaking change.",
    "exempted": false,
    "expected": undefined,
    "isMust": true,
    "isShould": false,
    "name": "prevent query parameters enum breaking changes",
    "passed": false,
    "received": undefined,
    "severity": 2,
    "type": "changed",
    "where": "GET /api/users query parameter: test",
  },
  {
    "change": {
      "changeType": "changed",
      "changed": {
        "after": {
          "in": "query",
          "name": "test",
          "schema": {
            "const": "b",
            "type": "string",
          },
        },
        "before": {
          "in": "query",
          "name": "test",
          "schema": {
            "const": "a",
            "type": "string",
          },
        },
      },
      "location": {
        "conceptualLocation": {
          "inRequest": {
            "query": "test",
          },
          "method": "get",
          "path": "/api/users",
        },
        "conceptualPath": [
          "operations",
          "/api/users",
          "get",
          "parameters",
          "query",
          "test",
        ],
        "jsonPath": "/paths/~1api~1users/get/parameters/0",
        "kind": "query-parameter",
      },
    },
    "condition": undefined,
    "docsLink": undefined,
    "error": undefined,
    "exempted": false,
    "expected": undefined,
    "isMust": true,
    "isShould": false,
    "name": "prevent query parameters type changes",
    "passed": true,
    "received": undefined,
    "severity": 2,
    "type": "changed",
    "where": "GET /api/users query parameter: test",
  },
  {
    "change": {
      "changeType": "changed",
      "changed": {
        "after": {
          "in": "query",
          "name": "test",
          "schema": {
            "const": "b",
            "type": "string",
          },
        },
        "before": {
          "in": "query",
          "name": "test",
          "schema": {
            "const": "a",
            "type": "string",
          },
        },
      },
      "location": {
        "conceptualLocation": {
          "inRequest": {
            "query": "test",
          },
          "method": "get",
          "path": "/api/users",
        },
        "conceptualPath": [
          "operations",
          "/api/users",
          "get",
          "parameters",
          "query",
          "test",
        ],
        "jsonPath": "/paths/~1api~1users/get/parameters/0",
        "kind": "query-parameter",
      },
    },
    "condition": undefined,
    "docsLink": undefined,
    "error": undefined,
    "exempted": false,
    "expected": undefined,
    "isMust": true,
    "isShould": false,
    "name": "prevent requiring existing query parameters",
    "passed": true,
    "received": undefined,
    "severity": 2,
    "type": "changed",
    "where": "GET /api/users query parameter: test",
  },
]
`;

exports[`breaking changes ruleset - parameter enum change enum added to "cookie" parameter 1`] = `
[
  {
    "change": {
      "changeType": "changed",
      "changed": {
        "after": {
          "in": "cookie",
          "name": "test",
          "schema": {
            "enum": [
              "a",
              "b",
            ],
            "type": "string",
          },
        },
        "before": {
          "in": "cookie",
          "name": "test",
          "schema": {
            "type": "string",
          },
        },
      },
      "location": {
        "conceptualLocation": {
          "inRequest": {
            "cookie": "test",
          },
          "method": "get",
          "path": "/api/users",
        },
        "conceptualPath": [
          "operations",
          "/api/users",
          "get",
          "parameters",
          "cookie",
          "test",
        ],
        "jsonPath": "/paths/~1api~1users/get/parameters/0",
        "kind": "cookie-parameter",
      },
    },
    "condition": undefined,
    "docsLink": undefined,
    "error": "cannot add an enum to restrict possible values for cookie parameter test. This is a breaking change.",
    "exempted": false,
    "expected": undefined,
    "isMust": true,
    "isShould": false,
    "name": "prevent cookie parameters enum breaking changes",
    "passed": false,
    "received": undefined,
    "severity": 2,
    "type": "changed",
    "where": "GET /api/users cookie parameter: test",
  },
  {
    "change": {
      "changeType": "changed",
      "changed": {
        "after": {
          "in": "cookie",
          "name": "test",
          "schema": {
            "enum": [
              "a",
              "b",
            ],
            "type": "string",
          },
        },
        "before": {
          "in": "cookie",
          "name": "test",
          "schema": {
            "type": "string",
          },
        },
      },
      "location": {
        "conceptualLocation": {
          "inRequest": {
            "cookie": "test",
          },
          "method": "get",
          "path": "/api/users",
        },
        "conceptualPath": [
          "operations",
          "/api/users",
          "get",
          "parameters",
          "cookie",
          "test",
        ],
        "jsonPath": "/paths/~1api~1users/get/parameters/0",
        "kind": "cookie-parameter",
      },
    },
    "condition": undefined,
    "docsLink": undefined,
    "error": undefined,
    "exempted": false,
    "expected": undefined,
    "isMust": true,
    "isShould": false,
    "name": "prevent cookie parameters type changes",
    "passed": true,
    "received": undefined,
    "severity": 2,
    "type": "changed",
    "where": "GET /api/users cookie parameter: test",
  },
  {
    "change": {
      "changeType": "changed",
      "changed": {
        "after": {
          "in": "cookie",
          "name": "test",
          "schema": {
            "enum": [
              "a",
              "b",
            ],
            "type": "string",
          },
        },
        "before": {
          "in": "cookie",
          "name": "test",
          "schema": {
            "type": "string",
          },
        },
      },
      "location": {
        "conceptualLocation": {
          "inRequest": {
            "cookie": "test",
          },
          "method": "get",
          "path": "/api/users",
        },
        "conceptualPath": [
          "operations",
          "/api/users",
          "get",
          "parameters",
          "cookie",
          "test",
        ],
        "jsonPath": "/paths/~1api~1users/get/parameters/0",
        "kind": "cookie-parameter",
      },
    },
    "condition": undefined,
    "docsLink": undefined,
    "error": undefined,
    "exempted": false,
    "expected": undefined,
    "isMust": true,
    "isShould": false,
    "name": "prevent requiring existing cookie parameters",
    "passed": true,
    "received": undefined,
    "severity": 2,
    "type": "changed",
    "where": "GET /api/users cookie parameter: test",
  },
]
`;

exports[`breaking changes ruleset - parameter enum change enum added to "header" parameter 1`] = `
[
  {
    "change": {
      "changeType": "changed",
      "changed": {
        "after": {
          "in": "header",
          "name": "test",
          "schema": {
            "enum": [
              "a",
              "b",
            ],
            "type": "string",
          },
        },
        "before": {
          "in": "header",
          "name": "test",
          "schema": {
            "type": "string",
          },
        },
      },
      "location": {
        "conceptualLocation": {
          "inRequest": {
            "header": "test",
          },
          "method": "get",
          "path": "/api/users",
        },
        "conceptualPath": [
          "operations",
          "/api/users",
          "get",
          "parameters",
          "header",
          "test",
        ],
        "jsonPath": "/paths/~1api~1users/get/parameters/0",
        "kind": "header-parameter",
      },
    },
    "condition": undefined,
    "docsLink": undefined,
    "error": "cannot add an enum to restrict possible values for header parameter test. This is a breaking change.",
    "exempted": false,
    "expected": undefined,
    "isMust": true,
    "isShould": false,
    "name": "prevent header parameters enum breaking changes",
    "passed": false,
    "received": undefined,
    "severity": 2,
    "type": "changed",
    "where": "GET /api/users header parameter: test",
  },
  {
    "change": {
      "changeType": "changed",
      "changed": {
        "after": {
          "in": "header",
          "name": "test",
          "schema": {
            "enum": [
              "a",
              "b",
            ],
            "type": "string",
          },
        },
        "before": {
          "in": "header",
          "name": "test",
          "schema": {
            "type": "string",
          },
        },
      },
      "location": {
        "conceptualLocation": {
          "inRequest": {
            "header": "test",
          },
          "method": "get",
          "path": "/api/users",
        },
        "conceptualPath": [
          "operations",
          "/api/users",
          "get",
          "parameters",
          "header",
          "test",
        ],
        "jsonPath": "/paths/~1api~1users/get/parameters/0",
        "kind": "header-parameter",
      },
    },
    "condition": undefined,
    "docsLink": undefined,
    "error": undefined,
    "exempted": false,
    "expected": undefined,
    "isMust": true,
    "isShould": false,
    "name": "prevent header parameters type changes",
    "passed": true,
    "received": undefined,
    "severity": 2,
    "type": "changed",
    "where": "GET /api/users header parameter: test",
  },
  {
    "change": {
      "changeType": "changed",
      "changed": {
        "after": {
          "in": "header",
          "name": "test",
          "schema": {
            "enum": [
              "a",
              "b",
            ],
            "type": "string",
          },
        },
        "before": {
          "in": "header",
          "name": "test",
          "schema": {
            "type": "string",
          },
        },
      },
      "location": {
        "conceptualLocation": {
          "inRequest": {
            "header": "test",
          },
          "method": "get",
          "path": "/api/users",
        },
        "conceptualPath": [
          "operations",
          "/api/users",
          "get",
          "parameters",
          "header",
          "test",
        ],
        "jsonPath": "/paths/~1api~1users/get/parameters/0",
        "kind": "header-parameter",
      },
    },
    "condition": undefined,
    "docsLink": undefined,
    "error": undefined,
    "exempted": false,
    "expected": undefined,
    "isMust": true,
    "isShould": false,
    "name": "prevent requiring existing header parameters",
    "passed": true,
    "received": undefined,
    "severity": 2,
    "type": "changed",
    "where": "GET /api/users header parameter: test",
  },
]
`;

exports[`breaking changes ruleset - parameter enum change enum added to "path" parameter 1`] = `
[
  {
    "change": {
      "changeType": "changed",
      "changed": {
        "after": {
          "in": "path",
          "name": "test",
          "schema": {
            "enum": [
              "a",
              "b",
            ],
            "type": "string",
          },
        },
        "before": {
          "in": "path",
          "name": "test",
          "schema": {
            "type": "string",
          },
        },
      },
      "location": {
        "conceptualLocation": {
          "inRequest": {
            "path": "test",
          },
          "method": "get",
          "path": "/api/users",
        },
        "conceptualPath": [
          "operations",
          "/api/users",
          "get",
          "parameters",
          "path",
          "test",
        ],
        "jsonPath": "/paths/~1api~1users/get/parameters/0",
        "kind": "path-parameter",
      },
    },
    "condition": undefined,
    "docsLink": undefined,
    "error": "cannot add an enum to restrict possible values for path parameter test. This is a breaking change.",
    "exempted": false,
    "expected": undefined,
    "isMust": true,
    "isShould": false,
    "name": "prevent path parameters enum breaking changes",
    "passed": false,
    "received": undefined,
    "severity": 2,
    "type": "changed",
    "where": "GET /api/users path parameter: test",
  },
  {
    "change": {
      "changeType": "changed",
      "changed": {
        "after": {
          "in": "path",
          "name": "test",
          "schema": {
            "enum": [
              "a",
              "b",
            ],
            "type": "string",
          },
        },
        "before": {
          "in": "path",
          "name": "test",
          "schema": {
            "type": "string",
          },
        },
      },
      "location": {
        "conceptualLocation": {
          "inRequest": {
            "path": "test",
          },
          "method": "get",
          "path": "/api/users",
        },
        "conceptualPath": [
          "operations",
          "/api/users",
          "get",
          "parameters",
          "path",
          "test",
        ],
        "jsonPath": "/paths/~1api~1users/get/parameters/0",
        "kind": "path-parameter",
      },
    },
    "condition": undefined,
    "docsLink": undefined,
    "error": undefined,
    "exempted": false,
    "expected": undefined,
    "isMust": true,
    "isShould": false,
    "name": "prevent path parameters type changes",
    "passed": true,
    "received": undefined,
    "severity": 2,
    "type": "changed",
    "where": "GET /api/users path parameter: test",
  },
]
`;

exports[`breaking changes ruleset - parameter enum change enum added to "query" parameter 1`] = `
[
  {
    "change": {
      "changeType": "changed",
      "changed": {
        "after": {
          "in": "query",
          "name": "test",
          "schema": {
            "enum": [
              "a",
              "b",
            ],
            "type": "string",
          },
        },
        "before": {
          "in": "query",
          "name": "test",
          "schema": {
            "type": "string",
          },
        },
      },
      "location": {
        "conceptualLocation": {
          "inRequest": {
            "query": "test",
          },
          "method": "get",
          "path": "/api/users",
        },
        "conceptualPath": [
          "operations",
          "/api/users",
          "get",
          "parameters",
          "query",
          "test",
        ],
        "jsonPath": "/paths/~1api~1users/get/parameters/0",
        "kind": "query-parameter",
      },
    },
    "condition": undefined,
    "docsLink": undefined,
    "error": "cannot add an enum to restrict possible values for query parameter test. This is a breaking change.",
    "exempted": false,
    "expected": undefined,
    "isMust": true,
    "isShould": false,
    "name": "prevent query parameters enum breaking changes",
    "passed": false,
    "received": undefined,
    "severity": 2,
    "type": "changed",
    "where": "GET /api/users query parameter: test",
  },
  {
    "change": {
      "changeType": "changed",
      "changed": {
        "after": {
          "in": "query",
          "name": "test",
          "schema": {
            "enum": [
              "a",
              "b",
            ],
            "type": "string",
          },
        },
        "before": {
          "in": "query",
          "name": "test",
          "schema": {
            "type": "string",
          },
        },
      },
      "location": {
        "conceptualLocation": {
          "inRequest": {
            "query": "test",
          },
          "method": "get",
          "path": "/api/users",
        },
        "conceptualPath": [
          "operations",
          "/api/users",
          "get",
          "parameters",
          "query",
          "test",
        ],
        "jsonPath": "/paths/~1api~1users/get/parameters/0",
        "kind": "query-parameter",
      },
    },
    "condition": undefined,
    "docsLink": undefined,
    "error": undefined,
    "exempted": false,
    "expected": undefined,
    "isMust": true,
    "isShould": false,
    "name": "prevent query parameters type changes",
    "passed": true,
    "received": undefined,
    "severity": 2,
    "type": "changed",
    "where": "GET /api/users query parameter: test",
  },
  {
    "change": {
      "changeType": "changed",
      "changed": {
        "after": {
          "in": "query",
          "name": "test",
          "schema": {
            "enum": [
              "a",
              "b",
            ],
            "type": "string",
          },
        },
        "before": {
          "in": "query",
          "name": "test",
          "schema": {
            "type": "string",
          },
        },
      },
      "location": {
        "conceptualLocation": {
          "inRequest": {
            "query": "test",
          },
          "method": "get",
          "path": "/api/users",
        },
        "conceptualPath": [
          "operations",
          "/api/users",
          "get",
          "parameters",
          "query",
          "test",
        ],
        "jsonPath": "/paths/~1api~1users/get/parameters/0",
        "kind": "query-parameter",
      },
    },
    "condition": undefined,
    "docsLink": undefined,
    "error": undefined,
    "exempted": false,
    "expected": undefined,
    "isMust": true,
    "isShould": false,
    "name": "prevent requiring existing query parameters",
    "passed": true,
    "received": undefined,
    "severity": 2,
    "type": "changed",
    "where": "GET /api/users query parameter: test",
  },
]
`;

exports[`breaking changes ruleset - parameter enum change enum converted to const "cookie" parameter 1`] = `
[
  {
    "change": {
      "changeType": "changed",
      "changed": {
        "after": {
          "in": "cookie",
          "name": "test",
          "schema": {
            "enum": [
              "a",
            ],
            "type": "string",
          },
        },
        "before": {
          "in": "cookie",
          "name": "test",
          "schema": {
            "const": "a",
            "type": "string",
          },
        },
      },
      "location": {
        "conceptualLocation": {
          "inRequest": {
            "cookie": "test",
          },
          "method": "get",
          "path": "/api/users",
        },
        "conceptualPath": [
          "operations",
          "/api/users",
          "get",
          "parameters",
          "cookie",
          "test",
        ],
        "jsonPath": "/paths/~1api~1users/get/parameters/0",
        "kind": "cookie-parameter",
      },
    },
    "condition": undefined,
    "docsLink": undefined,
    "error": undefined,
    "exempted": false,
    "expected": undefined,
    "isMust": true,
    "isShould": false,
    "name": "prevent cookie parameters enum breaking changes",
    "passed": true,
    "received": undefined,
    "severity": 2,
    "type": "changed",
    "where": "GET /api/users cookie parameter: test",
  },
  {
    "change": {
      "changeType": "changed",
      "changed": {
        "after": {
          "in": "cookie",
          "name": "test",
          "schema": {
            "enum": [
              "a",
            ],
            "type": "string",
          },
        },
        "before": {
          "in": "cookie",
          "name": "test",
          "schema": {
            "const": "a",
            "type": "string",
          },
        },
      },
      "location": {
        "conceptualLocation": {
          "inRequest": {
            "cookie": "test",
          },
          "method": "get",
          "path": "/api/users",
        },
        "conceptualPath": [
          "operations",
          "/api/users",
          "get",
          "parameters",
          "cookie",
          "test",
        ],
        "jsonPath": "/paths/~1api~1users/get/parameters/0",
        "kind": "cookie-parameter",
      },
    },
    "condition": undefined,
    "docsLink": undefined,
    "error": undefined,
    "exempted": false,
    "expected": undefined,
    "isMust": true,
    "isShould": false,
    "name": "prevent cookie parameters type changes",
    "passed": true,
    "received": undefined,
    "severity": 2,
    "type": "changed",
    "where": "GET /api/users cookie parameter: test",
  },
  {
    "change": {
      "changeType": "changed",
      "changed": {
        "after": {
          "in": "cookie",
          "name": "test",
          "schema": {
            "enum": [
              "a",
            ],
            "type": "string",
          },
        },
        "before": {
          "in": "cookie",
          "name": "test",
          "schema": {
            "const": "a",
            "type": "string",
          },
        },
      },
      "location": {
        "conceptualLocation": {
          "inRequest": {
            "cookie": "test",
          },
          "method": "get",
          "path": "/api/users",
        },
        "conceptualPath": [
          "operations",
          "/api/users",
          "get",
          "parameters",
          "cookie",
          "test",
        ],
        "jsonPath": "/paths/~1api~1users/get/parameters/0",
        "kind": "cookie-parameter",
      },
    },
    "condition": undefined,
    "docsLink": undefined,
    "error": undefined,
    "exempted": false,
    "expected": undefined,
    "isMust": true,
    "isShould": false,
    "name": "prevent requiring existing cookie parameters",
    "passed": true,
    "received": undefined,
    "severity": 2,
    "type": "changed",
    "where": "GET /api/users cookie parameter: test",
  },
]
`;

exports[`breaking changes ruleset - parameter enum change enum converted to const "header" parameter 1`] = `
[
  {
    "change": {
      "changeType": "changed",
      "changed": {
        "after": {
          "in": "header",
          "name": "test",
          "schema": {
            "enum": [
              "a",
            ],
            "type": "string",
          },
        },
        "before": {
          "in": "header",
          "name": "test",
          "schema": {
            "const": "a",
            "type": "string",
          },
        },
      },
      "location": {
        "conceptualLocation": {
          "inRequest": {
            "header": "test",
          },
          "method": "get",
          "path": "/api/users",
        },
        "conceptualPath": [
          "operations",
          "/api/users",
          "get",
          "parameters",
          "header",
          "test",
        ],
        "jsonPath": "/paths/~1api~1users/get/parameters/0",
        "kind": "header-parameter",
      },
    },
    "condition": undefined,
    "docsLink": undefined,
    "error": undefined,
    "exempted": false,
    "expected": undefined,
    "isMust": true,
    "isShould": false,
    "name": "prevent header parameters enum breaking changes",
    "passed": true,
    "received": undefined,
    "severity": 2,
    "type": "changed",
    "where": "GET /api/users header parameter: test",
  },
  {
    "change": {
      "changeType": "changed",
      "changed": {
        "after": {
          "in": "header",
          "name": "test",
          "schema": {
            "enum": [
              "a",
            ],
            "type": "string",
          },
        },
        "before": {
          "in": "header",
          "name": "test",
          "schema": {
            "const": "a",
            "type": "string",
          },
        },
      },
      "location": {
        "conceptualLocation": {
          "inRequest": {
            "header": "test",
          },
          "method": "get",
          "path": "/api/users",
        },
        "conceptualPath": [
          "operations",
          "/api/users",
          "get",
          "parameters",
          "header",
          "test",
        ],
        "jsonPath": "/paths/~1api~1users/get/parameters/0",
        "kind": "header-parameter",
      },
    },
    "condition": undefined,
    "docsLink": undefined,
    "error": undefined,
    "exempted": false,
    "expected": undefined,
    "isMust": true,
    "isShould": false,
    "name": "prevent header parameters type changes",
    "passed": true,
    "received": undefined,
    "severity": 2,
    "type": "changed",
    "where": "GET /api/users header parameter: test",
  },
  {
    "change": {
      "changeType": "changed",
      "changed": {
        "after": {
          "in": "header",
          "name": "test",
          "schema": {
            "enum": [
              "a",
            ],
            "type": "string",
          },
        },
        "before": {
          "in": "header",
          "name": "test",
          "schema": {
            "const": "a",
            "type": "string",
          },
        },
      },
      "location": {
        "conceptualLocation": {
          "inRequest": {
            "header": "test",
          },
          "method": "get",
          "path": "/api/users",
        },
        "conceptualPath": [
          "operations",
          "/api/users",
          "get",
          "parameters",
          "header",
          "test",
        ],
        "jsonPath": "/paths/~1api~1users/get/parameters/0",
        "kind": "header-parameter",
      },
    },
    "condition": undefined,
    "docsLink": undefined,
    "error": undefined,
    "exempted": false,
    "expected": undefined,
    "isMust": true,
    "isShould": false,
    "name": "prevent requiring existing header parameters",
    "passed": true,
    "received": undefined,
    "severity": 2,
    "type": "changed",
    "where": "GET /api/users header parameter: test",
  },
]
`;

exports[`breaking changes ruleset - parameter enum change enum converted to const "path" parameter 1`] = `
[
  {
    "change": {
      "changeType": "changed",
      "changed": {
        "after": {
          "in": "path",
          "name": "test",
          "schema": {
            "enum": [
              "a",
            ],
            "type": "string",
          },
        },
        "before": {
          "in": "path",
          "name": "test",
          "schema": {
            "const": "a",
            "type": "string",
          },
        },
      },
      "location": {
        "conceptualLocation": {
          "inRequest": {
            "path": "test",
          },
          "method": "get",
          "path": "/api/users",
        },
        "conceptualPath": [
          "operations",
          "/api/users",
          "get",
          "parameters",
          "path",
          "test",
        ],
        "jsonPath": "/paths/~1api~1users/get/parameters/0",
        "kind": "path-parameter",
      },
    },
    "condition": undefined,
    "docsLink": undefined,
    "error": undefined,
    "exempted": false,
    "expected": undefined,
    "isMust": true,
    "isShould": false,
    "name": "prevent path parameters enum breaking changes",
    "passed": true,
    "received": undefined,
    "severity": 2,
    "type": "changed",
    "where": "GET /api/users path parameter: test",
  },
  {
    "change": {
      "changeType": "changed",
      "changed": {
        "after": {
          "in": "path",
          "name": "test",
          "schema": {
            "enum": [
              "a",
            ],
            "type": "string",
          },
        },
        "before": {
          "in": "path",
          "name": "test",
          "schema": {
            "const": "a",
            "type": "string",
          },
        },
      },
      "location": {
        "conceptualLocation": {
          "inRequest": {
            "path": "test",
          },
          "method": "get",
          "path": "/api/users",
        },
        "conceptualPath": [
          "operations",
          "/api/users",
          "get",
          "parameters",
          "path",
          "test",
        ],
        "jsonPath": "/paths/~1api~1users/get/parameters/0",
        "kind": "path-parameter",
      },
    },
    "condition": undefined,
    "docsLink": undefined,
    "error": undefined,
    "exempted": false,
    "expected": undefined,
    "isMust": true,
    "isShould": false,
    "name": "prevent path parameters type changes",
    "passed": true,
    "received": undefined,
    "severity": 2,
    "type": "changed",
    "where": "GET /api/users path parameter: test",
  },
]
`;

exports[`breaking changes ruleset - parameter enum change enum converted to const "query" parameter 1`] = `
[
  {
    "change": {
      "changeType": "changed",
      "changed": {
        "after": {
          "in": "query",
          "name": "test",
          "schema": {
            "enum": [
              "a",
            ],
            "type": "string",
          },
        },
        "before": {
          "in": "query",
          "name": "test",
          "schema": {
            "const": "a",
            "type": "string",
          },
        },
      },
      "location": {
        "conceptualLocation": {
          "inRequest": {
            "query": "test",
          },
          "method": "get",
          "path": "/api/users",
        },
        "conceptualPath": [
          "operations",
          "/api/users",
          "get",
          "parameters",
          "query",
          "test",
        ],
        "jsonPath": "/paths/~1api~1users/get/parameters/0",
        "kind": "query-parameter",
      },
    },
    "condition": undefined,
    "docsLink": undefined,
    "error": undefined,
    "exempted": false,
    "expected": undefined,
    "isMust": true,
    "isShould": false,
    "name": "prevent query parameters enum breaking changes",
    "passed": true,
    "received": undefined,
    "severity": 2,
    "type": "changed",
    "where": "GET /api/users query parameter: test",
  },
  {
    "change": {
      "changeType": "changed",
      "changed": {
        "after": {
          "in": "query",
          "name": "test",
          "schema": {
            "enum": [
              "a",
            ],
            "type": "string",
          },
        },
        "before": {
          "in": "query",
          "name": "test",
          "schema": {
            "const": "a",
            "type": "string",
          },
        },
      },
      "location": {
        "conceptualLocation": {
          "inRequest": {
            "query": "test",
          },
          "method": "get",
          "path": "/api/users",
        },
        "conceptualPath": [
          "operations",
          "/api/users",
          "get",
          "parameters",
          "query",
          "test",
        ],
        "jsonPath": "/paths/~1api~1users/get/parameters/0",
        "kind": "query-parameter",
      },
    },
    "condition": undefined,
    "docsLink": undefined,
    "error": undefined,
    "exempted": false,
    "expected": undefined,
    "isMust": true,
    "isShould": false,
    "name": "prevent query parameters type changes",
    "passed": true,
    "received": undefined,
    "severity": 2,
    "type": "changed",
    "where": "GET /api/users query parameter: test",
  },
  {
    "change": {
      "changeType": "changed",
      "changed": {
        "after": {
          "in": "query",
          "name": "test",
          "schema": {
            "enum": [
              "a",
            ],
            "type": "string",
          },
        },
        "before": {
          "in": "query",
          "name": "test",
          "schema": {
            "const": "a",
            "type": "string",
          },
        },
      },
      "location": {
        "conceptualLocation": {
          "inRequest": {
            "query": "test",
          },
          "method": "get",
          "path": "/api/users",
        },
        "conceptualPath": [
          "operations",
          "/api/users",
          "get",
          "parameters",
          "query",
          "test",
        ],
        "jsonPath": "/paths/~1api~1users/get/parameters/0",
        "kind": "query-parameter",
      },
    },
    "condition": undefined,
    "docsLink": undefined,
    "error": undefined,
    "exempted": false,
    "expected": undefined,
    "isMust": true,
    "isShould": false,
    "name": "prevent requiring existing query parameters",
    "passed": true,
    "received": undefined,
    "severity": 2,
    "type": "changed",
    "where": "GET /api/users query parameter: test",
  },
]
`;

exports[`breaking changes ruleset - parameter enum change enums in request bodies 1`] = `
[
  {
    "change": {
      "changeType": "changed",
      "changed": {
        "after": {
          "flatSchema": {
            "enum": [
              "A",
            ],
            "type": "string",
          },
          "key": "enum",
          "required": false,
        },
        "before": {
          "flatSchema": {
            "enum": [
              "A",
              "B",
            ],
            "type": "string",
          },
          "key": "enum",
          "required": false,
        },
      },
      "location": {
        "conceptualLocation": {
          "inRequest": {
            "body": {
              "contentType": "application/json",
            },
          },
          "jsonSchemaTrail": [
            "enum",
          ],
          "method": "get",
          "path": "/api/users",
        },
        "conceptualPath": [
          "operations",
          "/api/users",
          "get",
          "application/json",
          "enum",
        ],
        "jsonPath": "/paths/~1api~1users/get/requestBody/content/application~1json/schema/properties/enum",
        "kind": "field",
      },
    },
    "condition": undefined,
    "docsLink": undefined,
    "error": undefined,
    "expected": undefined,
    "isMust": true,
    "isShould": false,
    "name": "prevent changing request property to required",
    "passed": true,
    "received": undefined,
    "severity": 2,
    "type": "changed",
    "where": "GET /api/users request body: application/json property: enum",
  },
  {
    "change": {
      "changeType": "changed",
      "changed": {
        "after": {
          "flatSchema": {
            "enum": [
              "A",
            ],
            "type": "string",
          },
          "key": "enum",
          "required": false,
        },
        "before": {
          "flatSchema": {
            "enum": [
              "A",
              "B",
            ],
            "type": "string",
          },
          "key": "enum",
          "required": false,
        },
      },
      "location": {
        "conceptualLocation": {
          "inRequest": {
            "body": {
              "contentType": "application/json",
            },
          },
          "jsonSchemaTrail": [
            "enum",
          ],
          "method": "get",
          "path": "/api/users",
        },
        "conceptualPath": [
          "operations",
          "/api/users",
          "get",
          "application/json",
          "enum",
        ],
        "jsonPath": "/paths/~1api~1users/get/requestBody/content/application~1json/schema/properties/enum",
        "kind": "field",
      },
    },
    "condition": undefined,
    "docsLink": undefined,
    "error": undefined,
    "expected": undefined,
    "isMust": true,
    "isShould": false,
    "name": "prevent request property type changes",
    "passed": true,
    "received": undefined,
    "severity": 2,
    "type": "changed",
    "where": "GET /api/users request body: application/json property: enum",
  },
  {
    "change": {
      "changeType": "changed",
      "changed": {
        "after": {
          "flatSchema": {
            "enum": [
              "A",
            ],
            "type": "string",
          },
          "key": "enum",
          "required": false,
        },
        "before": {
          "flatSchema": {
            "enum": [
              "A",
              "B",
            ],
            "type": "string",
          },
          "key": "enum",
          "required": false,
        },
      },
      "location": {
        "conceptualLocation": {
          "inRequest": {
            "body": {
              "contentType": "application/json",
            },
          },
          "jsonSchemaTrail": [
            "enum",
          ],
          "method": "get",
          "path": "/api/users",
        },
        "conceptualPath": [
          "operations",
          "/api/users",
          "get",
          "application/json",
          "enum",
        ],
        "jsonPath": "/paths/~1api~1users/get/requestBody/content/application~1json/schema/properties/enum",
        "kind": "field",
      },
    },
    "condition": undefined,
    "docsLink": undefined,
    "error": undefined,
    "expected": undefined,
    "isMust": true,
    "isShould": false,
    "name": "prevent expanded in request union types",
    "passed": true,
    "received": undefined,
    "severity": 2,
    "type": "changed",
    "where": "GET /api/users request body: application/json property: enum",
  },
  {
    "change": {
      "changeType": "changed",
      "changed": {
        "after": {
          "flatSchema": {
            "enum": [
              "A",
            ],
            "type": "string",
          },
          "key": "enum",
          "required": false,
        },
        "before": {
          "flatSchema": {
            "enum": [
              "A",
              "B",
            ],
            "type": "string",
          },
          "key": "enum",
          "required": false,
        },
      },
      "location": {
        "conceptualLocation": {
          "inRequest": {
            "body": {
              "contentType": "application/json",
            },
          },
          "jsonSchemaTrail": [
            "enum",
          ],
          "method": "get",
          "path": "/api/users",
        },
        "conceptualPath": [
          "operations",
          "/api/users",
          "get",
          "application/json",
          "enum",
        ],
        "jsonPath": "/paths/~1api~1users/get/requestBody/content/application~1json/schema/properties/enum",
        "kind": "field",
      },
    },
    "condition": undefined,
    "docsLink": undefined,
    "error": "cannot remove enum option 'B' from 'enum' property. This is a breaking change.",
    "expected": undefined,
    "isMust": true,
    "isShould": false,
    "name": "request and response property enums",
    "passed": false,
    "received": undefined,
    "severity": 2,
    "type": "changed",
    "where": "GET /api/users request body: application/json property: enum",
  },
]
`;

exports[`breaking changes ruleset - parameter enum change enums in response bodies 1`] = `
[
  {
    "change": {
      "changeType": "changed",
      "changed": {
        "after": {
          "flatSchema": {
            "enum": [
              "A",
              "B",
              "C",
            ],
            "type": "string",
          },
          "key": "enum",
          "required": false,
        },
        "before": {
          "flatSchema": {
            "enum": [
              "A",
              "B",
            ],
            "type": "string",
          },
          "key": "enum",
          "required": false,
        },
      },
      "location": {
        "conceptualLocation": {
          "inResponse": {
            "body": {
              "contentType": "application/json",
            },
            "statusCode": "200",
          },
          "jsonSchemaTrail": [
            "enum",
          ],
          "method": "get",
          "path": "/api/users",
        },
        "conceptualPath": [
          "operations",
          "/api/users",
          "get",
          "responses",
          "200",
          "application/json",
          "enum",
        ],
        "jsonPath": "/paths/~1api~1users/get/responses/200/content/application~1json/schema/properties/enum",
        "kind": "field",
      },
    },
    "condition": undefined,
    "docsLink": undefined,
    "error": undefined,
    "exempted": false,
    "expected": undefined,
    "isMust": true,
    "isShould": false,
    "name": "prevent making response property optional",
    "passed": true,
    "received": undefined,
    "severity": 2,
    "type": "changed",
    "where": "GET /api/users response 200 response body: application/json property enum",
  },
  {
    "change": {
      "changeType": "changed",
      "changed": {
        "after": {
          "flatSchema": {
            "enum": [
              "A",
              "B",
              "C",
            ],
            "type": "string",
          },
          "key": "enum",
          "required": false,
        },
        "before": {
          "flatSchema": {
            "enum": [
              "A",
              "B",
            ],
            "type": "string",
          },
          "key": "enum",
          "required": false,
        },
      },
      "location": {
        "conceptualLocation": {
          "inResponse": {
            "body": {
              "contentType": "application/json",
            },
            "statusCode": "200",
          },
          "jsonSchemaTrail": [
            "enum",
          ],
          "method": "get",
          "path": "/api/users",
        },
        "conceptualPath": [
          "operations",
          "/api/users",
          "get",
          "responses",
          "200",
          "application/json",
          "enum",
        ],
        "jsonPath": "/paths/~1api~1users/get/responses/200/content/application~1json/schema/properties/enum",
        "kind": "field",
      },
    },
    "condition": undefined,
    "docsLink": undefined,
    "error": undefined,
    "exempted": false,
    "expected": undefined,
    "isMust": true,
    "isShould": false,
    "name": "prevent response property type changes",
    "passed": true,
    "received": undefined,
    "severity": 2,
    "type": "changed",
    "where": "GET /api/users response 200 response body: application/json property enum",
  },
  {
    "change": {
      "changeType": "changed",
      "changed": {
        "after": {
          "flatSchema": {
            "enum": [
              "A",
              "B",
              "C",
            ],
            "type": "string",
          },
          "key": "enum",
          "required": false,
        },
        "before": {
          "flatSchema": {
            "enum": [
              "A",
              "B",
            ],
            "type": "string",
          },
          "key": "enum",
          "required": false,
        },
      },
      "location": {
        "conceptualLocation": {
          "inResponse": {
            "body": {
              "contentType": "application/json",
            },
            "statusCode": "200",
          },
          "jsonSchemaTrail": [
            "enum",
          ],
          "method": "get",
          "path": "/api/users",
        },
        "conceptualPath": [
          "operations",
          "/api/users",
          "get",
          "responses",
          "200",
          "application/json",
          "enum",
        ],
        "jsonPath": "/paths/~1api~1users/get/responses/200/content/application~1json/schema/properties/enum",
        "kind": "field",
      },
    },
    "condition": undefined,
    "docsLink": undefined,
    "error": undefined,
    "exempted": false,
    "expected": undefined,
    "isMust": true,
    "isShould": false,
    "name": "prevent narrowing in response union types",
    "passed": true,
    "received": undefined,
    "severity": 2,
    "type": "changed",
    "where": "GET /api/users response 200 response body: application/json property enum",
  },
  {
    "change": {
      "changeType": "changed",
      "changed": {
        "after": {
          "flatSchema": {
            "enum": [
              "A",
              "B",
              "C",
            ],
            "type": "string",
          },
          "key": "enum",
          "required": false,
        },
        "before": {
          "flatSchema": {
            "enum": [
              "A",
              "B",
            ],
            "type": "string",
          },
          "key": "enum",
          "required": false,
        },
      },
      "location": {
        "conceptualLocation": {
          "inResponse": {
            "body": {
              "contentType": "application/json",
            },
            "statusCode": "200",
          },
          "jsonSchemaTrail": [
            "enum",
          ],
          "method": "get",
          "path": "/api/users",
        },
        "conceptualPath": [
          "operations",
          "/api/users",
          "get",
          "responses",
          "200",
          "application/json",
          "enum",
        ],
        "jsonPath": "/paths/~1api~1users/get/responses/200/content/application~1json/schema/properties/enum",
        "kind": "field",
      },
    },
    "condition": undefined,
    "docsLink": undefined,
    "error": "cannot add enum option 'C' from 'enum' property. This is a breaking change.",
    "exempted": false,
    "expected": undefined,
    "isMust": true,
    "isShould": false,
    "name": "request and response property enums",
    "passed": false,
    "received": undefined,
    "severity": 2,
    "type": "changed",
    "where": "GET /api/users response 200 response body: application/json property enum",
  },
]
`;
