diff --git a/CHANGELOG.md b/CHANGELOG.md index 773ed49..d6ed742 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +# 0.12.0-beta.2 + +## Bug Fixes + +- Data Structure generation from JSON Schema handles array items which + contain empty values. + # 0.12.0-beta.1 ## Enhancements diff --git a/package.json b/package.json index 2b340a1..260689d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "fury-adapter-swagger", - "version": "0.12.0-beta.1", + "version": "0.12.0-beta.2", "description": "Swagger 2.0 parser for Fury.js", "main": "./lib/adapter.js", "tonicExampleFilename": "tonic-example.js", diff --git a/src/schema.js b/src/schema.js index 4e1ab11..c0a7567 100644 --- a/src/schema.js +++ b/src/schema.js @@ -87,10 +87,16 @@ export default class DataStructureGenerator { if (schema.items) { if (_.isArray(schema.items)) { schema.items.forEach((item) => { - element.push(this.generateElement(item)); + const itemElement = this.generateElement(item); + if (itemElement) { + element.push(itemElement); + } }); } else { - element.push(this.generateElement(schema.items)); + const itemElement = this.generateElement(schema.items); + if (itemElement) { + element.push(itemElement); + } } } diff --git a/test/schema.js b/test/schema.js index 6e05a85..6331299 100644 --- a/test/schema.js +++ b/test/schema.js @@ -509,6 +509,19 @@ describe('JSON Schema to Data Structure', () => { expect(dataStructure.content.description.toValue()) .to.equal('- Array contents must be unique'); }); + + it('produces empty array element with empty items', () => { + const schema = { + type: 'array', + items: {}, + }; + + const dataStructure = schemaToDataStructure(schema); + + expect(dataStructure.element).to.equal('dataStructure'); + expect(dataStructure.content).to.be.instanceof(ArrayElement); + expect(dataStructure.content.content.length).to.be.equal(0); + }); }); it('exposes the schema title', () => {