Skip to content
This repository has been archived by the owner on Jul 2, 2019. It is now read-only.

Commit

Permalink
Merge pull request #147 from apiaryio/kylef/ds-required
Browse files Browse the repository at this point in the history
Fix missing required type attributes
  • Loading branch information
pksunkara authored Nov 10, 2017
2 parents 06ea645 + 4125a00 commit f497db6
Show file tree
Hide file tree
Showing 4 changed files with 13 additions and 8 deletions.
7 changes: 7 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,10 @@
# 0.15.1

## Bug Fixes

- Data Structure generation was not including required typeAttribute for
required object properties.

# 0.15.0

## Enhancements
Expand Down
4 changes: 2 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "fury-adapter-swagger",
"version": "0.15.0",
"version": "0.15.1",
"description": "Swagger 2.0 parser for Fury.js",
"main": "./lib/adapter.js",
"tonicExampleFilename": "tonic-example.js",
Expand Down Expand Up @@ -37,7 +37,7 @@
"minim": "^0.19.0",
"minim-parse-result": "^0.8.0",
"peasant": "1.1.0",
"swagger-zoo": "2.9.0"
"swagger-zoo": "2.9.1"
},
"engines": {
"node": ">=4"
Expand Down
6 changes: 2 additions & 4 deletions src/schema.js
Original file line number Diff line number Diff line change
Expand Up @@ -60,9 +60,7 @@ export default class DataStructureGenerator {
// Generates an object element from the given object schema
generateObject(schema) {
const {
Array: ArrayElement,
Object: ObjectElement,
String: StringElement,
} = this.minim.elements;

let properties = schema.properties || {};
Expand All @@ -88,8 +86,8 @@ export default class DataStructureGenerator {
const member = this.generateMember(property, subschema);

const isRequired = required.includes(property);
member.attributes.typeAttributes = new ArrayElement([
new StringElement(isRequired ? 'required' : 'optional'),
member.attributes.set('typeAttributes', [
isRequired ? 'required' : 'optional',
]);

return member;
Expand Down
4 changes: 2 additions & 2 deletions test/schema.js
Original file line number Diff line number Diff line change
Expand Up @@ -404,7 +404,7 @@ describe('JSON Schema to Data Structure', () => {
expect(dataStructure.content).to.be.instanceof(ObjectElement);

const member = dataStructure.content.content[0];
expect(member.attributes.typeAttributes.toValue()).to.deep.equal(['required']);
expect(member.attributes.getValue('typeAttributes')).to.deep.equal(['required']);
});

it('produces object element with description of maxProperties', () => {
Expand Down Expand Up @@ -469,7 +469,7 @@ describe('JSON Schema to Data Structure', () => {

const admin = dataStructure.content.getMember('admin');
expect(admin).not.to.be.undefined;
expect(admin.attributes.typeAttributes.toValue()).to.deep.equal(['required']);
expect(admin.attributes.getValue('typeAttributes')).to.deep.equal(['required']);
});

it('produces samples from examples', () => {
Expand Down

0 comments on commit f497db6

Please sign in to comment.