From a2c79efbf7bf40395bd84281d1ec05597b9203ea Mon Sep 17 00:00:00 2001 From: Phil Sturgeon Date: Mon, 11 Dec 2017 17:18:20 -0500 Subject: [PATCH] Support example and x-example in Swagger Properties --- src/parsers/swagger/v2.0/Parser.js | 6 ++ .../swagger/v2.0/__tests__/Parser.spec.js | 70 ++++++++++++++++++- 2 files changed, 74 insertions(+), 2 deletions(-) diff --git a/src/parsers/swagger/v2.0/Parser.js b/src/parsers/swagger/v2.0/Parser.js index a2f9043..5c30291 100644 --- a/src/parsers/swagger/v2.0/Parser.js +++ b/src/parsers/swagger/v2.0/Parser.js @@ -1252,6 +1252,12 @@ methods.convertParameterObjectIntoParameter = (parameterEntry) => { applicableContexts } + if (typeof parameter.example !== 'undefined') { + paramInstance.examples = List([parameter.example]) + } else if (typeof parameter['x-example'] !== 'undefined') { + paramInstance.examples = List([parameter['x-example']]) + } + if (parameter.type === 'array' && parameter.items) { const { value } = methods.convertParameterObjectIntoParameter({ key: null, diff --git a/src/parsers/swagger/v2.0/__tests__/Parser.spec.js b/src/parsers/swagger/v2.0/__tests__/Parser.spec.js index cd2469d..fa7faa7 100644 --- a/src/parsers/swagger/v2.0/__tests__/Parser.spec.js +++ b/src/parsers/swagger/v2.0/__tests__/Parser.spec.js @@ -2772,7 +2772,8 @@ describe('parsers/swagger/v2.0/Parser.js', () => { maximum: 321, minimum: 123, multipleOf: 5, - default: 100 + default: 100, + example: 12345 } } @@ -2787,6 +2788,9 @@ describe('parsers/swagger/v2.0/Parser.js', () => { required: true, type: 'integer', default: 100, + examples: List([ + 12345 + ]), constraints: List([ new Constraint.Maximum(321), new Constraint.Minimum(123), @@ -2816,7 +2820,8 @@ describe('parsers/swagger/v2.0/Parser.js', () => { maximum: 321, minimum: 123, multipleOf: 5, - default: 100 + default: 100, + example: 12345 } } } @@ -2838,6 +2843,7 @@ describe('parsers/swagger/v2.0/Parser.js', () => { required: true, type: 'integer', default: 100, + examples: List([12345]), constraints: List([ new Constraint.Maximum(321), new Constraint.Minimum(123), @@ -2920,6 +2926,66 @@ describe('parsers/swagger/v2.0/Parser.js', () => { const actual = inputs.map(input => __internals__.convertParameterObjectIntoParameter(input)) expect(actual).toEqual(expected) }) + + it('should respect x-example too', () => { + const inputs = [ + { + key: 'UserId', + value: { + name: 'userId', + in: 'query', + type: 'integer', + required: true, + 'x-example': 23456 + } + }, + { + key: 'ShowThing', + value: { + name: 'showThing', + in: 'query', + type: 'boolean', + 'x-example': false + } + } + ] + + const expected = [ + { + key: 'UserId', + value: new Parameter({ + key: 'userId', + name: 'userId', + in: 'queries', + uuid: 'UserId', + required: true, + type: 'integer', + examples: List([ + 23456 + ]), + constraints: List() + }) + }, + { + key: 'ShowThing', + value: new Parameter({ + key: 'showThing', + name: 'showThing', + in: 'queries', + uuid: 'ShowThing', + required: false, + type: 'boolean', + examples: List([ + false + ]), + constraints: List() + }) + } + ] + + const actual = inputs.map(input => __internals__.convertParameterObjectIntoParameter(input)) + expect(actual).toEqual(expected) + }) }) describe('@convertParameterObjectArrayIntoParameterMap', () => {