openapi-library / OpenAPIValidators

Use Jest or Chai to assert that HTTP responses satisfy an OpenAPI spec
MIT License
189 stars 35 forks source link

Strict mode for library #298

Open batyshkaLenin opened 10 months ago

batyshkaLenin commented 10 months ago

Are you using OpenAPI 2, 3.0.X, or 3.1.0? Version 3.0.0, but it doesn't matter, such functionality will be useful for all versions.

Would this solve a problem or make something easier? Not only will I be able to enforce existing contracts using tests and Swagger, but I will also be able to "force" a developer to describe Swagger if they add a new field.

What would you like to happen? Strict mode will allow you to check not only the fields that will return an endpoint when tested, but also those that are not described in the schema. That is, if I get extra fields that are not described in the schema, I want to get an error, and not get an error only if the fields described in Swagger have not changed.

Describe alternatives you've considered Honestly, I don't see any alternatives

Additional context or screenshots To enable this mode, for example, you could do the following

jestOpenAPI(path.resolve(__dirname, '../../src/openapi.yaml'), { mode: 'strict' });

Are you going to resolve the issue? I'm not sure if I'm gonna make it

DetachHead commented 7 months ago

do you have "additionalProperties": false in your schema? when i do, it correctly fails to validate when an additional field is present.

https://json-schema.org/understanding-json-schema/reference/object#additional-properties