File tree Expand file tree Collapse file tree 3 files changed +241
-0
lines changed
packages/apidom-ns-asyncapi-3 Expand file tree Collapse file tree 3 files changed +241
-0
lines changed Original file line number Diff line number Diff line change @@ -66,6 +66,7 @@ import ServerSecurityVisitor from './visitors/async-api-3/server/SecurityVisitor
6666import ServerVariableVisitor from './visitors/async-api-3/server-variable/index.ts' ;
6767import ServerVisitor from './visitors/async-api-3/server/index.ts' ;
6868import ServersVisitor from './visitors/async-api-3/servers/index.ts' ;
69+ import SpecificationExtensionVisitor from './visitors/SpecificationExtensionVisitor.ts' ;
6970import TagVisitor from './visitors/async-api-3/tag/index.ts' ;
7071import TagsVisitor from './visitors/async-api-3/tags/index.ts' ;
7172import schemaInheritedFixedFields from './visitors/async-api-3/schema/inherited-fixed-fields.ts' ;
@@ -1460,6 +1461,9 @@ const specification = {
14601461 } ,
14611462 } ,
14621463 } ,
1464+ extension : {
1465+ $visitor : SpecificationExtensionVisitor ,
1466+ } ,
14631467 } ,
14641468 } ,
14651469} ;
Original file line number Diff line number Diff line change 11// Jest Snapshot v1, https://goo.gl/fbAQLP
22
3+ exports [` refractor given generic ApiDOM object in AsyncApi 3.0.0 shape should refract specification extensions 1` ] = `
4+ {
5+ " element" : " asyncApi3" ,
6+ " meta" : {
7+ " classes" : {
8+ " element" : " array" ,
9+ " content" : [
10+ {
11+ " element" : " string" ,
12+ " content" : " api"
13+ }
14+ ]
15+ }
16+ },
17+ " content" : [
18+ {
19+ " element" : " member" ,
20+ " meta" : {
21+ " classes" : {
22+ " element" : " array" ,
23+ " content" : [
24+ {
25+ " element" : " string" ,
26+ " content" : " fixed-field"
27+ }
28+ ]
29+ }
30+ },
31+ " content" : {
32+ " key" : {
33+ " element" : " string" ,
34+ " content" : " asyncapi"
35+ },
36+ " value" : {
37+ " element" : " asyncApiVersion" ,
38+ " meta" : {
39+ " classes" : {
40+ " element" : " array" ,
41+ " content" : [
42+ {
43+ " element" : " string" ,
44+ " content" : " spec-version"
45+ },
46+ {
47+ " element" : " string" ,
48+ " content" : " version"
49+ }
50+ ]
51+ }
52+ },
53+ " content" : " 3.0.0"
54+ }
55+ }
56+ },
57+ {
58+ " element" : " member" ,
59+ " meta" : {
60+ " classes" : {
61+ " element" : " array" ,
62+ " content" : [
63+ {
64+ " element" : " string" ,
65+ " content" : " specification-extension"
66+ }
67+ ]
68+ }
69+ },
70+ " content" : {
71+ " key" : {
72+ " element" : " string" ,
73+ " content" : " x-extension-1"
74+ },
75+ " value" : {
76+ " element" : " string" ,
77+ " content" : " value1"
78+ }
79+ }
80+ },
81+ {
82+ " element" : " member" ,
83+ " meta" : {
84+ " classes" : {
85+ " element" : " array" ,
86+ " content" : [
87+ {
88+ " element" : " string" ,
89+ " content" : " fixed-field"
90+ }
91+ ]
92+ }
93+ },
94+ " content" : {
95+ " key" : {
96+ " element" : " string" ,
97+ " content" : " info"
98+ },
99+ " value" : {
100+ " element" : " info" ,
101+ " meta" : {
102+ " classes" : {
103+ " element" : " array" ,
104+ " content" : [
105+ {
106+ " element" : " string" ,
107+ " content" : " info"
108+ }
109+ ]
110+ }
111+ },
112+ " content" : [
113+ {
114+ " element" : " member" ,
115+ " meta" : {
116+ " classes" : {
117+ " element" : " array" ,
118+ " content" : [
119+ {
120+ " element" : " string" ,
121+ " content" : " fixed-field"
122+ }
123+ ]
124+ }
125+ },
126+ " content" : {
127+ " key" : {
128+ " element" : " string" ,
129+ " content" : " title"
130+ },
131+ " value" : {
132+ " element" : " string" ,
133+ " content" : " Sample API"
134+ }
135+ }
136+ },
137+ {
138+ " element" : " member" ,
139+ " meta" : {
140+ " classes" : {
141+ " element" : " array" ,
142+ " content" : [
143+ {
144+ " element" : " string" ,
145+ " content" : " fixed-field"
146+ }
147+ ]
148+ }
149+ },
150+ " content" : {
151+ " key" : {
152+ " element" : " string" ,
153+ " content" : " version"
154+ },
155+ " value" : {
156+ " element" : " string" ,
157+ " meta" : {
158+ " classes" : {
159+ " element" : " array" ,
160+ " content" : [
161+ {
162+ " element" : " string" ,
163+ " content" : " api-version"
164+ },
165+ {
166+ " element" : " string" ,
167+ " content" : " version"
168+ }
169+ ]
170+ }
171+ },
172+ " content" : " 1.0.0"
173+ }
174+ }
175+ },
176+ {
177+ " element" : " member" ,
178+ " meta" : {
179+ " classes" : {
180+ " element" : " array" ,
181+ " content" : [
182+ {
183+ " element" : " string" ,
184+ " content" : " specification-extension"
185+ }
186+ ]
187+ }
188+ },
189+ " content" : {
190+ " key" : {
191+ " element" : " string" ,
192+ " content" : " x-extension-2"
193+ },
194+ " value" : {
195+ " element" : " object" ,
196+ " content" : [
197+ {
198+ " element" : " member" ,
199+ " content" : {
200+ " key" : {
201+ " element" : " string" ,
202+ " content" : " nestedKey"
203+ },
204+ " value" : {
205+ " element" : " string" ,
206+ " content" : " nestedValue"
207+ }
208+ }
209+ }
210+ ]
211+ }
212+ }
213+ }
214+ ]
215+ }
216+ }
217+ }
218+ ]
219+ }
220+ ` ;
221+
3222exports [` refractor given generic ApiDOM object in AsyncApi 3.0.0 shape should refract to AsyncApi3Element 1` ] = `
4223{
5224 " element" : " asyncApi3" ,
Original file line number Diff line number Diff line change @@ -26,6 +26,24 @@ describe('refractor', function () {
2626
2727 expect ( asyncApiElement ) . toMatchSnapshot ( ) ;
2828 } ) ;
29+
30+ specify ( 'should refract specification extensions' , function ( ) {
31+ const asyncApiPojo = {
32+ asyncapi : '3.0.0' ,
33+ 'x-extension-1' : 'value1' ,
34+ info : {
35+ title : 'Sample API' ,
36+ version : '1.0.0' ,
37+ 'x-extension-2' : {
38+ nestedKey : 'nestedValue' ,
39+ } ,
40+ } ,
41+ } ;
42+ const genericObjectElement = new ObjectElement ( asyncApiPojo ) ;
43+ const asyncApiElement = AsyncApi3Element . refract ( genericObjectElement ) ;
44+
45+ expect ( asyncApiElement ) . toMatchSnapshot ( ) ;
46+ } ) ;
2947 } ) ;
3048
3149 context ( 'supports plugins' , function ( ) {
You can’t perform that action at this time.
0 commit comments