From b1a63ac1177ed40e058d5bde02fc5b7e9d9d7a91 Mon Sep 17 00:00:00 2001 From: Kyle Shockey Date: Wed, 7 Feb 2018 14:52:15 -0800 Subject: [PATCH 1/3] Add failing test --- test/bugs/editor-1661.js | 140 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 140 insertions(+) create mode 100644 test/bugs/editor-1661.js diff --git a/test/bugs/editor-1661.js b/test/bugs/editor-1661.js new file mode 100644 index 000000000..86a15026c --- /dev/null +++ b/test/bugs/editor-1661.js @@ -0,0 +1,140 @@ +// https://github.com/swagger-api/swagger-ui/issues/4071 + +import expect, {createSpy, spyOn} from 'expect' +import Swagger from '../../src' + +const spec = { + paths: { + '/path1': { + get: { + responses: { + 200: { + schema: { + $ref: '#/definitions/DataObjectArray' + } + } + } + } + } + }, + definitions: { + DataObject: { + properties: { + modifiers: { + $ref: '#/definitions/DataModifiers' + } + } + }, + DataObjectArray: { + items: { + $ref: '#/definitions/DataObject' + } + }, + DataModifier: { + properties: { + prop1: { + type: 'string' + } + } + }, + DataModifiers: { + items: { + $ref: '#/definitions/DataModifier' + } + } + } +} + + +it('should resolve a deeply-nested $ref series correctly', async function () { + const res = await Swagger.resolve({ + spec + }) + + expect(res).toEqual({ + errors: [], + spec: { + paths: { + '/path1': { + get: { + responses: { + 200: { + schema: { + $$ref: '#/definitions/DataObjectArray', + items: { + $$ref: '#/definitions/DataObject', + properties: { + modifiers: { + $$ref: '#/definitions/DataModifiers', + items: { + $$ref: '#/definitions/DataModifier', + properties: { + prop1: { + type: 'string' + } + } + } + } + } + } + } + } + } + } + } + }, + definitions: { + DataObject: { + properties: { + modifiers: { + $$ref: '#/definitions/DataModifiers', + items: { + $$ref: '#/definitions/DataModifier', + properties: { + prop1: { + type: 'string' + } + } + } + } + } + }, + DataObjectArray: { + items: { + $$ref: '#/definitions/DataObject', + properties: { + modifiers: { + $$ref: '#/definitions/DataModifiers', + items: { + $$ref: '#/definitions/DataModifier', + properties: { + prop1: { + type: 'string' + } + } + } + } + } + } + }, + DataModifier: { + properties: { + prop1: { + type: 'string' + } + } + }, + DataModifiers: { + items: { + $$ref: '#/definitions/DataModifier', + properties: { + prop1: { + type: 'string' + } + } + } + } + } + } + }) +}) From 55da38afd0b22069bce1dcee537abb9d5e5f967f Mon Sep 17 00:00:00 2001 From: kyle Date: Fri, 9 Feb 2018 18:25:10 -0800 Subject: [PATCH 2/3] fix url reference --- test/bugs/editor-1661.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/bugs/editor-1661.js b/test/bugs/editor-1661.js index 86a15026c..b1f3bc606 100644 --- a/test/bugs/editor-1661.js +++ b/test/bugs/editor-1661.js @@ -1,4 +1,4 @@ -// https://github.com/swagger-api/swagger-ui/issues/4071 +// https://github.com/swagger-api/swagger-editor/issues/1661 import expect, {createSpy, spyOn} from 'expect' import Swagger from '../../src' From 60285467cbefba02a69106dfaa655e44f771424d Mon Sep 17 00:00:00 2001 From: kyle Date: Thu, 3 May 2018 17:38:10 -0700 Subject: [PATCH 3/3] expect `$$normalized` meta patch --- test/bugs/editor-1661.js | 1 + 1 file changed, 1 insertion(+) diff --git a/test/bugs/editor-1661.js b/test/bugs/editor-1661.js index b1f3bc606..9f3ec3519 100644 --- a/test/bugs/editor-1661.js +++ b/test/bugs/editor-1661.js @@ -54,6 +54,7 @@ it('should resolve a deeply-nested $ref series correctly', async function () { expect(res).toEqual({ errors: [], spec: { + $$normalized: true, paths: { '/path1': { get: {