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 #119 from apiaryio/kylef/enumarray
Browse files Browse the repository at this point in the history
Handle parameter array types when enumeration is provided
  • Loading branch information
kylef authored Aug 11, 2017
2 parents 957df88 + 708ddf1 commit 641c3d3
Show file tree
Hide file tree
Showing 4 changed files with 47 additions and 3 deletions.
6 changes: 6 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
# 0.13.1

## Bug Fixes

- Handle array parameters which contain enumerations.

# 0.13.0

- Compatibility with [Minim 0.19](https://github.com/refractproject/minim/releases/tag/v0.19.0)
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "fury-adapter-swagger",
"version": "0.13.0",
"version": "0.13.1",
"description": "Swagger 2.0 parser for Fury.js",
"main": "./lib/adapter.js",
"tonicExampleFilename": "tonic-example.js",
Expand Down
3 changes: 1 addition & 2 deletions src/parser.js
Original file line number Diff line number Diff line change
Expand Up @@ -1183,8 +1183,7 @@ export default class Parser {
const enumerations = new ArrayElement();

_.forEach(parameter.enum, (value, index) => {
const e = new Type();
e.content = value;
const e = new Type(value);

if (this.generateSourceMap) {
this.createSourceMap(e, path.concat('enum', index));
Expand Down
39 changes: 39 additions & 0 deletions test/parameter.js
Original file line number Diff line number Diff line change
Expand Up @@ -138,4 +138,43 @@ describe('Parameter to Member converter', () => {
expect(member.value.toValue()).to.deep.equal([]);
expect(parser.result.toValue()).to.deep.equal(['Value of example should be an array']);
});

it('can convert a parameter with enum values to a member with enumerations', () => {
const parser = new Parser({ minim, source: '' });
const parameter = {
in: 'query',
name: 'order',
type: 'string',
enum: ['ascending', 'descending'],
};
const member = parser.convertParameterToMember(parameter);

expect(member.value).to.be.instanceof(minim.elements.Element);
const enumerations = member.value.attributes.get('enumerations');

expect(enumerations).to.be.instanceof(minim.elements.Array);
expect(enumerations.toValue()).to.deep.equal(['ascending', 'descending']);
});

it('can convert a parameter with array enum values to a member with enumerations', () => {
const parser = new Parser({ minim, source: '' });
const parameter = {
in: 'query',
name: 'tags',
type: 'array',
items: {
type: 'string',
},
enum: [
['hello'],
],
};
const member = parser.convertParameterToMember(parameter);

expect(member.value).to.be.instanceof(minim.elements.Element);
const enumerations = member.value.attributes.get('enumerations');

expect(enumerations).to.be.instanceof(minim.elements.Array);
expect(enumerations.toValue()).to.deep.equal([['hello']]);
});
});

0 comments on commit 641c3d3

Please sign in to comment.