diff --git a/src/middlewares/openapi.request.validator.ts b/src/middlewares/openapi.request.validator.ts index 734502b9..82b0b7f7 100644 --- a/src/middlewares/openapi.request.validator.ts +++ b/src/middlewares/openapi.request.validator.ts @@ -343,6 +343,16 @@ export class RequestValidator { if (parameter.content && parameter.content[TYPE_JSON]) { parameterSchema = parameter.content[TYPE_JSON].schema; parseJson.push({ name, reqField }); + } else if ( + // handle complex json types in schema + $in === 'query' && + (parameterSchema.allOf || + parameterSchema.oneOf || + parameterSchema.anyOf || + (parameterSchema.type === 'object' && + parameterSchema.type !== 'array')) + ) { + parseJson.push({ name, reqField }); } if (!parameterSchema) { diff --git a/test/serialized.objects.spec.ts b/test/serialized.objects.spec.ts index e24f9993..b4943185 100644 --- a/test/serialized.objects.spec.ts +++ b/test/serialized.objects.spec.ts @@ -6,7 +6,7 @@ import { createApp } from './common/app'; const packageJson = require('../package.json'); -describe.only(packageJson.name, () => { +describe(packageJson.name, () => { let app = null; before(async () => {