cases:
- name: a valid additionalProperties schema
  input:
    openapi: 3.0.0
    info:
      title: ""
      version: 1.0.0
    paths: {}
    components:
      schemas:
        mySchema:
          type: object
          additionalProperties:
            type: string
  output:
    equal: null
- name: a valid schema with an invalid additionalProperties schema
  input:
    openapi: 3.0.0
    info:
      title: ""
      version: 1.0.0
    paths: {}
    components:
      schemas:
        mySchema:
          type: object
          additionalProperties:
            type: int
  output:
    length: 1
    match:
    - message: |-
        should be equal to one of the allowed values
        allowedValues: array, boolean, integer, number, object, string
      path: [components, schemas, mySchema, additionalProperties]
- name: a valid schema with an invalid additionalProperties string value
  input:
    openapi: 3.0.0
    info:
      title: ""
      version: 1.0.0
    paths: {}
    components:
      schemas:
        mySchema:
          type: object
          additionalProperties: "wow"
  output:
    length: 1
    match:
    - message: should be a Reference Object, Schema Object, or boolean value
      path: [components, schemas, mySchema, additionalProperties]
- name: a valid schema with a valid additionalProperties reference
  input:
    openapi: 3.0.0
    info:
      title: ""
      version: 1.0.0
    paths: {}
    components:
      schemas:
        mySchema:
          type: object
          additionalProperties:
            $ref: "#"
  output:
    equal: null
- name: "a valid schema with `additionalProperties: true`"
  input:
    openapi: 3.0.0
    info:
      title: ""
      version: 1.0.0
    paths: {}
    components:
      schemas:
        mySchema:
          type: object
          additionalProperties: true
  output:
    equal: null
- name: "a valid schema with `additionalProperties: false`"
  input:
    openapi: 3.0.0
    info:
      title: ""
      version: 1.0.0
    paths: {}
    components:
      schemas:
        mySchema:
          type: object
          additionalProperties: false
  output:
    equal: null
- name: "a valid schema without `additionalProperties`"
  input:
    openapi: 3.0.0
    info:
      title: ""
      version: 1.0.0
    paths: {}
    components:
      schemas:
        mySchema:
          type: object
  output:
    equal: null