253253 const seq = [ { foo : { bar : { baz } } } , { fe : { fi : { fo : { baz } } } } ]
254254 expect ( YAML . stringify ( seq ) ) . toBe ( `- foo:
255255 bar:
256- baz:
257- &a1
256+ baz: &a1
258257 a: 1
259258- fe:
260259 fi:
364363 )
365364 } )
366365 } )
366+
367+ describe ( 'properties on collections in block mapping' , ( ) => {
368+ test ( 'explicit tag on block sequence' , ( ) => {
369+ const src = source `
370+ key: !tag
371+ - one
372+ - two
373+ `
374+ const doc = YAML . parseDocument ( src )
375+ expect ( String ( doc ) ) . toBe ( src )
376+ } )
377+ test ( 'explicit tag on block mapping' , ( ) => {
378+ const src = source `
379+ key: !tag
380+ one: 1
381+ two: 2
382+ `
383+ const doc = YAML . parseDocument ( src )
384+ expect ( String ( doc ) ) . toBe ( src )
385+ } )
386+ test ( 'single-line comment on block sequence' , ( ) => {
387+ const src = source `
388+ key: #comment
389+ - one
390+ - two
391+ `
392+ const doc = YAML . parseDocument ( src )
393+ expect ( String ( doc ) ) . toBe ( source `
394+ key:
395+ #comment
396+ - one
397+ - two
398+ ` )
399+ } )
400+ test ( 'single-line comment and explicit tag on block sequence' , ( ) => {
401+ const src = source `
402+ key: #comment
403+ !tag
404+ - one
405+ - two
406+ `
407+ const doc = YAML . parseDocument ( src )
408+ expect ( String ( doc ) ) . toBe ( source `
409+ key:
410+ #comment
411+ !tag
412+ - one
413+ - two
414+ ` )
415+ } )
416+ test ( 'explicit tag and comment on block sequence' , ( ) => {
417+ const src = source `
418+ key: !tag
419+ #comment
420+ - one
421+ - two
422+ `
423+ const doc = YAML . parseDocument ( src )
424+ expect ( String ( doc ) ) . toBe ( source `
425+ key:
426+ #comment
427+ !tag
428+ - one
429+ - two
430+ ` )
431+ } )
432+ test ( 'anchor on block sequence' , ( ) => {
433+ const src = source `
434+ key: &anchor
435+ - one
436+ - two
437+ `
438+ const doc = YAML . parseDocument ( src )
439+ expect ( String ( doc ) ) . toBe ( src )
440+ } )
441+ test ( 'anchor and explicit tag on block sequence' , ( ) => {
442+ const src = source `
443+ key: &anchor !tag
444+ - one
445+ - two
446+ `
447+ const doc = YAML . parseDocument ( src )
448+ expect ( String ( doc ) ) . toBe ( src )
449+ } )
450+ test ( 'explicit tag on empty mapping' , ( ) => {
451+ const doc = new YAML . Document ( { key : { } } )
452+ doc . get ( 'key' ) . tag = '!tag'
453+ expect ( String ( doc ) ) . toBe ( source `
454+ key: !tag {}
455+ ` )
456+ } )
457+ test ( 'explicit tag on single-line flow mapping' , ( ) => {
458+ const src = source `
459+ key: !tag { one: 1, two: 2 }
460+ `
461+ const doc = YAML . parseDocument ( src )
462+ expect ( String ( doc ) ) . toBe ( src )
463+ } )
464+ test ( 'explicit tag on multi-line flow mapping' , ( ) => {
465+ const src = source `
466+ key: !tag {
467+ one: aaaaaaaaaa,
468+ two: bbbbbbbbbb,
469+ three: cccccccccc,
470+ four: dddddddddd,
471+ five: eeeeeeeeee
472+ }
473+ `
474+ const doc = YAML . parseDocument ( src )
475+ expect ( String ( doc ) ) . toBe ( source `
476+ key:
477+ !tag {
478+ one: aaaaaaaaaa,
479+ two: bbbbbbbbbb,
480+ three: cccccccccc,
481+ four: dddddddddd,
482+ five: eeeeeeeeee
483+ }
484+ ` )
485+ } )
486+ test ( 'explicit tag on explicit-value block sequence' , ( ) => {
487+ const src = source `
488+ ? [ key ]
489+ : !tag
490+ - one
491+ - two
492+ `
493+ const doc = YAML . parseDocument ( src )
494+ expect ( String ( doc ) ) . toBe ( src )
495+ } )
496+ } )
367497} )
368498
369499test ( 'eemeli/yaml#43: Quoting colons' , ( ) => {
@@ -702,7 +832,7 @@ describe('indentSeq: false', () => {
702832 b: 2
703833 map:
704834 seq:
705- #sc
835+ #sc
706836 - a
707837 ` )
708838 } )
@@ -714,7 +844,7 @@ describe('indentSeq: false', () => {
714844 b: 2
715845 map:
716846 seq:
717- #sc
847+ #sc
718848 - a
719849 ` )
720850 } )
@@ -1182,15 +1312,15 @@ describe('YAML.stringify on ast Document', () => {
11821312} )
11831313
11841314describe ( 'flow collection padding' , ( ) => {
1185- const doc = new YAML . Document ( ) ;
1186- doc . contents = new YAML . YAMLSeq ( ) ;
1187- doc . contents . items = [ 1 , 2 ] ;
1188- doc . contents . flow = true ;
1315+ const doc = new YAML . Document ( )
1316+ doc . contents = new YAML . YAMLSeq ( )
1317+ doc . contents . items = [ 1 , 2 ]
1318+ doc . contents . flow = true
11891319
11901320 test ( 'default' , ( ) => {
11911321 expect ( doc . toString ( ) ) . toBe ( '[ 1, 2 ]\n' )
1192- } ) ;
1322+ } )
11931323 test ( 'default' , ( ) => {
1194- expect ( doc . toString ( { flowCollectionPadding : false } ) ) . toBe ( '[1, 2]\n' )
1195- } ) ;
1196- } )
1324+ expect ( doc . toString ( { flowCollectionPadding : false } ) ) . toBe ( '[1, 2]\n' )
1325+ } )
1326+ } )
0 commit comments