test for transitive dereferencing

This commit is contained in:
Roman Hotsiy 2016-06-25 13:58:03 +03:00
parent 434f0927c1
commit 9e1d7768d7
No known key found for this signature in database
GPG Key ID: 5CB7B3ACABA57CB0
2 changed files with 40 additions and 0 deletions

View File

@ -93,9 +93,23 @@ describe('Spec Helper', () => {
expect(resolved.items.$ref).toBeUndefined();
resolved.type.should.be.equal('array');
resolved._pointer.should.be.equal('#/definitions/Circular');
});
it('should remove _pointer when detect circularity', () => {
expect(resolved.items._pointer).toBeUndefined();
resolved.items.title.should.be.equal('Circular');
});
it('should resolve transitive circular ref', () => {
let pointer = '/paths/test6/get/parameters/0';
resolved = normalizer.normalize(specMgr.byPointer(pointer), pointer);
expect(resolved.additionalProperties.$ref).toBeUndefined();
expect(resolved.additionalProperties.items.additionalProperties.$ref).toBeUndefined();
resolved.additionalProperties.type.should.be.equal('array');
resolved.additionalProperties._pointer.should.be.equal('#/definitions/CircularTransitive2');
expect(resolved.additionalProperties.items.additionalProperties._pointer).toBeUndefined();
resolved.additionalProperties.items.additionalProperties.title.should.be.equal('CircularTransitive');
});
});
describe('$ref with other fields on the same level', () => {

View File

@ -35,6 +35,20 @@
"items": {
"$ref": "#/definitions/Circular"
}
},
"CircularTransitive": {
"type": "object",
"additionalProperties": {
"$ref": "#/definitions/CircularTransitive2"
}
},
"CircularTransitive2": {
"type": "array",
"items": {
"additionalProperties": {
"$ref": "#/definitions/CircularTransitive"
}
}
}
},
"paths": {
@ -89,6 +103,18 @@
}
]
}
},
"test6": {
"get": {
"summary": "test get",
"parameters": [
{
"$ref": "#/definitions/CircularTransitive",
"title": "test",
"description": "test"
}
]
}
}
}
}