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

Commit 408c481

Browse files
author
Z
committed
Test parsing multiple examples origin
1 parent bc2abde commit 408c481

File tree

1 file changed

+61
-1
lines changed

1 file changed

+61
-1
lines changed

test/test.coffee

Lines changed: 61 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,10 @@ SegfaultHandler = require 'segfault-handler'
22
SegfaultHandler.registerHandler()
33

44
protagonist = require '../build/Release/protagonist'
5-
{assert} = require 'chai'
5+
6+
chai = require 'chai'
7+
chai.Assertion.includeStack = true;
8+
assert = chai.assert
69

710
describe "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

Comments
 (0)