From ce87174213ceb7603f20eba90f8033cb6c47be5d Mon Sep 17 00:00:00 2001 From: Vladimir L Date: Thu, 22 Nov 2018 08:19:57 +0100 Subject: [PATCH] fix: respect description defined on the property level with $ref even if referred object has default description (#703) --- lib/services/schema-normalizer.service.ts | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/lib/services/schema-normalizer.service.ts b/lib/services/schema-normalizer.service.ts index ca602308..61920096 100644 --- a/lib/services/schema-normalizer.service.ts +++ b/lib/services/schema-normalizer.service.ts @@ -229,11 +229,18 @@ export class SchemaDereferencer { if ( keysCount > 2 || (keysCount === 2 && !schema.description) ) { WarningsService.warn(`Other properties are defined at the same level as $ref at "#${pointer}". ` + 'They are IGNORED according to the JsonSchema spec'); - resolved.description = resolved.description || schema.description; } resolved = this.normalizator.normalize(resolved, $ref); this._refCouner.exit($ref); + + // schema description should always override $ref description + if (schema.description) { + // make a copy of resolved object with updated description, do not globally override the description + resolved = Object.assign({}, resolved); + resolved.description = schema.description; + } + return resolved; } }