@@ -2,7 +2,10 @@ SegfaultHandler = require 'segfault-handler'
22SegfaultHandler .registerHandler ()
33
44protagonist = require ' ../build/Release/protagonist'
5- {assert } = require ' chai'
5+
6+ chai = require ' chai'
7+ chai .Assertion .includeStack = true ;
8+ assert = chai .assert
69
710describe " API Blueprint parser" , ->
811
@@ -391,3 +394,60 @@ C: 3
391394 assert .strictEqual action .parameters .id .values .length , 0
392395
393396 done ()
397+
398+ it ' parses multiple transactions' , (done ) ->
399+ source = """
400+ # /resource
401+ ## GET
402+
403+ + request A
404+
405+ A
406+
407+ + response 200
408+
409+ 200-A
410+
411+ + request B
412+
413+ B
414+
415+ + response 200
416+
417+ 200-B
418+
419+ """
420+
421+ protagonist .parse source, (err , result ) ->
422+ assert .isNull err
423+
424+ assert .strictEqual result .ast .resourceGroups .length , 1
425+ assert .strictEqual result .ast .resourceGroups [0 ].resources .length , 1
426+ assert .strictEqual result .ast .resourceGroups [0 ].resources [0 ].actions .length , 1
427+ assert .strictEqual result .ast .resourceGroups [0 ].resources [0 ].actions [0 ].examples .length , 2
428+
429+ example = result .ast .resourceGroups [0 ].resources [0 ].actions [0 ].examples [0 ]
430+ assert .strictEqual example .requests .length , 1
431+ assert .strictEqual example .responses .length , 1
432+
433+ request = example .requests [0 ]
434+ assert .strictEqual request .name , ' A'
435+ assert .strictEqual request .body , ' A\n '
436+
437+ response = example .responses [0 ]
438+ assert .strictEqual response .name , ' 200'
439+ assert .strictEqual response .body , ' 200-A\n '
440+
441+ example = result .ast .resourceGroups [0 ].resources [0 ].actions [0 ].examples [1 ]
442+ assert .strictEqual example .requests .length , 1
443+ assert .strictEqual example .responses .length , 1
444+
445+ request = example .requests [0 ]
446+ assert .strictEqual request .name , ' B'
447+ assert .strictEqual request .body , ' B\n '
448+
449+ response = example .responses [0 ]
450+ assert .strictEqual response .name , ' 200'
451+ assert .strictEqual response .body , ' 200-B\n '
452+
453+ done ()
0 commit comments