@@ -9,6 +9,14 @@ const adapter = require('../lib/adapter');
99const fury = new Fury ( ) ;
1010fury . use ( adapter ) ;
1111
12+ const source = `
13+ # GET /
14+ + Response 200 (application/json)
15+ + Attributes
16+ + message: Hello World
17+ ` ;
18+
19+
1220describe ( 'API Blueprint parser adapter' , ( ) => {
1321 context ( 'detection' , ( ) => {
1422 it ( 'detects FORMAT: 1A' , ( ) => {
@@ -28,7 +36,6 @@ describe('API Blueprint parser adapter', () => {
2836 let result ;
2937
3038 before ( ( done ) => {
31- const source = 'FORMAT: 1A\n# My API\n## Foo [/foo]\n' ;
3239 fury . parse ( { source } , ( err , output ) => {
3340 if ( err ) {
3441 return done ( err ) ;
@@ -61,4 +68,98 @@ describe('API Blueprint parser adapter', () => {
6168 done ( ) ;
6269 } ) ;
6370 } ) ;
71+
72+ describe ( 'generateMessageBody option' , ( ) => {
73+ it ( 'should generate message bodies when generateMessageBody is not set' , ( done ) => {
74+ fury . parse ( { source } , ( error , parseResult ) => {
75+ expect ( error ) . to . be . null ;
76+
77+ const resource = parseResult . api . resources . get ( 0 ) ;
78+ const transaction = resource . transitions . get ( 0 ) . transactions . get ( 0 ) ;
79+ const { response } = transaction ;
80+
81+ expect ( response . messageBody ) . to . be . instanceof ( fury . minim . elements . Asset ) ;
82+ expect ( response . messageBodySchema ) . to . be . instanceof ( fury . minim . elements . Asset ) ;
83+
84+ done ( ) ;
85+ } ) ;
86+ } ) ;
87+
88+ it ( 'should generate message bodies when generateMessageBody is enabled' , ( done ) => {
89+ fury . parse ( { source, adapterOptions : { generateMessageBody : true } } , ( error , parseResult ) => {
90+ expect ( error ) . to . be . null ;
91+
92+ const resource = parseResult . api . resources . get ( 0 ) ;
93+ const transaction = resource . transitions . get ( 0 ) . transactions . get ( 0 ) ;
94+ const { response } = transaction ;
95+
96+ expect ( response . messageBody ) . to . be . instanceof ( fury . minim . elements . Asset ) ;
97+ expect ( response . messageBodySchema ) . to . be . instanceof ( fury . minim . elements . Asset ) ;
98+
99+ done ( ) ;
100+ } ) ;
101+ } ) ;
102+
103+ it ( 'should not generate message bodies when generateMessageBody is disabled' , ( done ) => {
104+ fury . parse ( { source, adapterOptions : { generateMessageBody : false } } , ( error , parseResult ) => {
105+ expect ( error ) . to . be . null ;
106+
107+ const resource = parseResult . api . resources . get ( 0 ) ;
108+ const transaction = resource . transitions . get ( 0 ) . transactions . get ( 0 ) ;
109+ const { response } = transaction ;
110+
111+ expect ( response . messageBody ) . to . be . undefined ;
112+ expect ( response . messageBodySchema ) . to . be . instanceof ( fury . minim . elements . Asset ) ;
113+
114+ done ( ) ;
115+ } ) ;
116+ } ) ;
117+ } ) ;
118+
119+ describe ( 'generateMessageBodySchema option' , ( ) => {
120+ it ( 'should generate message bodies when generateMessageBodySchema is not set' , ( done ) => {
121+ fury . parse ( { source } , ( error , parseResult ) => {
122+ expect ( error ) . to . be . null ;
123+
124+ const resource = parseResult . api . resources . get ( 0 ) ;
125+ const transaction = resource . transitions . get ( 0 ) . transactions . get ( 0 ) ;
126+ const { response } = transaction ;
127+
128+ expect ( response . messageBody ) . to . be . instanceof ( fury . minim . elements . Asset ) ;
129+ expect ( response . messageBodySchema ) . to . be . instanceof ( fury . minim . elements . Asset ) ;
130+
131+ done ( ) ;
132+ } ) ;
133+ } ) ;
134+
135+ it ( 'should generate message bodies when generateMessageBodySchema is enabled' , ( done ) => {
136+ fury . parse ( { source, adapterOptions : { generateMessageBodySchema : true } } , ( error , parseResult ) => {
137+ expect ( error ) . to . be . null ;
138+
139+ const resource = parseResult . api . resources . get ( 0 ) ;
140+ const transaction = resource . transitions . get ( 0 ) . transactions . get ( 0 ) ;
141+ const { response } = transaction ;
142+
143+ expect ( response . messageBody ) . to . be . instanceof ( fury . minim . elements . Asset ) ;
144+ expect ( response . messageBodySchema ) . to . be . instanceof ( fury . minim . elements . Asset ) ;
145+
146+ done ( ) ;
147+ } ) ;
148+ } ) ;
149+
150+ it ( 'should not generate message bodies when generateMessageBodySchema is disabled' , ( done ) => {
151+ fury . parse ( { source, adapterOptions : { generateMessageBodySchema : false } } , ( error , parseResult ) => {
152+ expect ( error ) . to . be . null ;
153+
154+ const resource = parseResult . api . resources . get ( 0 ) ;
155+ const transaction = resource . transitions . get ( 0 ) . transactions . get ( 0 ) ;
156+ const { response } = transaction ;
157+
158+ expect ( response . messageBody ) . to . be . instanceof ( fury . minim . elements . Asset ) ;
159+ expect ( response . messageBodySchema ) . to . be . undefined ;
160+
161+ done ( ) ;
162+ } ) ;
163+ } ) ;
164+ } ) ;
64165} ) ;
0 commit comments