Skip to content
This repository was archived by the owner on Nov 8, 2024. It is now read-only.

Commit 4b16fd6

Browse files
committed
test(oas3): test multiple references to same schema
1 parent c8f2cf8 commit 4b16fd6

File tree

3 files changed

+320
-7
lines changed

3 files changed

+320
-7
lines changed

packages/fury-adapter-oas3-parser/test/integration/components-test.js

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -21,14 +21,21 @@ describe('components', () => {
2121
});
2222
});
2323

24-
it("'Media Type Object' schema references", () => {
25-
const file = path.join(fixtures, 'media-type-object-schema');
26-
return testParseFixture(file);
27-
});
24+
describe('Media Type Object', () => {
25+
it('handles schema references', () => {
26+
const file = path.join(fixtures, 'media-type-object-schema');
27+
return testParseFixture(file);
28+
});
2829

29-
it("'Media Type Object' examples references", () => {
30-
const file = path.join(fixtures, 'media-type-object-examples');
31-
return testParseFixture(file);
30+
it('handles multiple references to same schema', () => {
31+
const file = path.join(fixtures, 'media-type-object-schema-multiple');
32+
return testParseFixture(file);
33+
});
34+
35+
it('handles examples references', () => {
36+
const file = path.join(fixtures, 'media-type-object-examples');
37+
return testParseFixture(file);
38+
});
3239
});
3340

3441
describe('Responses Object', () => {
Lines changed: 272 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,272 @@
1+
{
2+
"element": "parseResult",
3+
"content": [
4+
{
5+
"element": "category",
6+
"meta": {
7+
"classes": {
8+
"element": "array",
9+
"content": [
10+
{
11+
"element": "string",
12+
"content": "api"
13+
}
14+
]
15+
},
16+
"title": {
17+
"element": "string",
18+
"content": "Schemas Components"
19+
}
20+
},
21+
"attributes": {
22+
"version": {
23+
"element": "string",
24+
"content": "1.0.0"
25+
}
26+
},
27+
"content": [
28+
{
29+
"element": "resource",
30+
"attributes": {
31+
"href": {
32+
"element": "string",
33+
"content": "/user"
34+
}
35+
},
36+
"content": [
37+
{
38+
"element": "transition",
39+
"meta": {
40+
"title": {
41+
"element": "string",
42+
"content": "View the current User"
43+
}
44+
},
45+
"content": [
46+
{
47+
"element": "httpTransaction",
48+
"content": [
49+
{
50+
"element": "httpRequest",
51+
"attributes": {
52+
"method": {
53+
"element": "string",
54+
"content": "GET"
55+
}
56+
}
57+
},
58+
{
59+
"element": "httpResponse",
60+
"attributes": {
61+
"headers": {
62+
"element": "httpHeaders",
63+
"content": [
64+
{
65+
"element": "member",
66+
"content": {
67+
"key": {
68+
"element": "string",
69+
"content": "Content-Type"
70+
},
71+
"value": {
72+
"element": "string",
73+
"content": "application/json"
74+
}
75+
}
76+
}
77+
]
78+
},
79+
"statusCode": {
80+
"element": "string",
81+
"content": "200"
82+
}
83+
},
84+
"content": [
85+
{
86+
"element": "asset",
87+
"meta": {
88+
"classes": {
89+
"element": "array",
90+
"content": [
91+
{
92+
"element": "string",
93+
"content": "messageBody"
94+
}
95+
]
96+
}
97+
},
98+
"attributes": {
99+
"contentType": {
100+
"element": "string",
101+
"content": "application/json"
102+
}
103+
},
104+
"content": "{\"name\":\"\",\"company\":{\"name\":\"\"}}"
105+
},
106+
{
107+
"element": "dataStructure",
108+
"content": {
109+
"element": "User"
110+
}
111+
},
112+
{
113+
"element": "copy",
114+
"content": "A user"
115+
}
116+
]
117+
}
118+
]
119+
},
120+
{
121+
"element": "httpTransaction",
122+
"content": [
123+
{
124+
"element": "httpRequest",
125+
"attributes": {
126+
"method": {
127+
"element": "string",
128+
"content": "GET"
129+
}
130+
}
131+
},
132+
{
133+
"element": "httpResponse",
134+
"attributes": {
135+
"headers": {
136+
"element": "httpHeaders",
137+
"content": [
138+
{
139+
"element": "member",
140+
"content": {
141+
"key": {
142+
"element": "string",
143+
"content": "Content-Type"
144+
},
145+
"value": {
146+
"element": "string",
147+
"content": "application/yaml"
148+
}
149+
}
150+
}
151+
]
152+
},
153+
"statusCode": {
154+
"element": "string",
155+
"content": "200"
156+
}
157+
},
158+
"content": [
159+
{
160+
"element": "dataStructure",
161+
"content": {
162+
"element": "User"
163+
}
164+
},
165+
{
166+
"element": "copy",
167+
"content": "A user"
168+
}
169+
]
170+
}
171+
]
172+
}
173+
]
174+
}
175+
]
176+
},
177+
{
178+
"element": "category",
179+
"meta": {
180+
"classes": {
181+
"element": "array",
182+
"content": [
183+
{
184+
"element": "string",
185+
"content": "dataStructures"
186+
}
187+
]
188+
}
189+
},
190+
"content": [
191+
{
192+
"element": "dataStructure",
193+
"content": {
194+
"element": "object",
195+
"meta": {
196+
"id": {
197+
"element": "string",
198+
"content": "User"
199+
}
200+
},
201+
"content": [
202+
{
203+
"element": "member",
204+
"content": {
205+
"key": {
206+
"element": "string",
207+
"content": "name"
208+
},
209+
"value": {
210+
"element": "name"
211+
}
212+
}
213+
},
214+
{
215+
"element": "member",
216+
"content": {
217+
"key": {
218+
"element": "string",
219+
"content": "company"
220+
},
221+
"value": {
222+
"element": "Company"
223+
}
224+
}
225+
}
226+
]
227+
}
228+
},
229+
{
230+
"element": "dataStructure",
231+
"content": {
232+
"element": "object",
233+
"meta": {
234+
"id": {
235+
"element": "string",
236+
"content": "Company"
237+
}
238+
},
239+
"content": [
240+
{
241+
"element": "member",
242+
"content": {
243+
"key": {
244+
"element": "string",
245+
"content": "name"
246+
},
247+
"value": {
248+
"element": "name"
249+
}
250+
}
251+
}
252+
]
253+
}
254+
},
255+
{
256+
"element": "dataStructure",
257+
"content": {
258+
"element": "string",
259+
"meta": {
260+
"id": {
261+
"element": "string",
262+
"content": "name"
263+
}
264+
}
265+
}
266+
}
267+
]
268+
}
269+
]
270+
}
271+
]
272+
}
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
openapi: "3.0.0"
2+
info:
3+
version: 1.0.0
4+
title: Schemas Components
5+
paths:
6+
/user:
7+
get:
8+
summary: View the current User
9+
responses:
10+
'200':
11+
description: A user
12+
content:
13+
application/json:
14+
schema:
15+
$ref: '#/components/schemas/User'
16+
application/yaml:
17+
schema:
18+
$ref: '#/components/schemas/User'
19+
components:
20+
schemas:
21+
User:
22+
type: object
23+
properties:
24+
name:
25+
$ref: '#/components/schemas/name'
26+
company:
27+
$ref: '#/components/schemas/Company'
28+
Company:
29+
type: object
30+
properties:
31+
name:
32+
$ref: '#/components/schemas/name'
33+
name:
34+
type: string

0 commit comments

Comments
 (0)