@@ -286,13 +286,13 @@ C: 3
286286 assert err .code != 0
287287 assert .isDefined err .location
288288
289- it ' parses parameters' , ->
289+ it ' parses resource parameters' , ->
290290 source = """
291291# /machine{?limit}
292292
293293+ Parameters
294294 + limit = `20` (optional, number, `42`) ... This is a limit
295- + Values:
295+ + Values
296296 + `20`
297297 + `42`
298298 + `53`
@@ -343,3 +343,47 @@ C: 3
343343
344344 assert .isDefined values[2 ]
345345 assert .strictEqual values[2 ], " 53"
346+
347+ it ' parses action parameters' , ->
348+ source = """
349+ # GET /coupons/{id}
350+
351+ + Parameters
352+ + id (number, `1001`) ... Id of coupon
353+
354+ + Response 204
355+ """
356+
357+ protagonist .parse source, (err , result ) ->
358+ assert .isNull err
359+
360+ assert .strictEqual result .ast .resourceGroups .length , 1
361+ assert .strictEqual result .ast .resourceGroups [0 ].resources .length , 1
362+ assert .strictEqual result .ast .resourceGroups [0 ].resources [0 ].actions .length , 1
363+
364+ action = result .ast .resourceGroups [0 ].resources [0 ].actions [0 ]
365+ assert .strictEqual action .method , " GET"
366+
367+ assert .isDefined action .parameters
368+ assert .strictEqual Object .keys (action .parameters ).length , 1
369+
370+ assert .isDefined action .parameters .id
371+
372+ assert .isDefined action .parameters .id .description
373+ assert .strictEqual action .parameters .id .description , " Id of coupon"
374+
375+ assert .isDefined action .parameters .id .type
376+ assert .strictEqual action .parameters .id .type , " number"
377+
378+ assert .isDefined action .parameters .id .required
379+ assert .strictEqual action .parameters .id .required , true
380+
381+ assert .isDefined action .parameters .id .default
382+ assert .strictEqual action .parameters .id .default , " "
383+
384+ assert .isDefined action .parameters .id .example
385+ assert .strictEqual action .parameters .id .example , " 1001"
386+
387+ assert .isDefined action .parameters .id .values
388+ assert .strictEqual action .parameters .id .values .length , 0
389+
0 commit comments