@@ -68,6 +68,38 @@ describe('#parseMap', () => {
6868 expect ( member2 . value . toValue ( ) ) . to . be . equal ( 'dummy' ) ;
6969 } ) ;
7070
71+ it ( 'propagate members from parser' , ( ) => {
72+ const member = new context . namespace . elements . Member ( 'key' , {
73+ uno : { } ,
74+ } ) ;
75+
76+ const parseToMember = ( context , object , key ) => pipeParseResult (
77+ namespace ,
78+ ( ) => {
79+ const member = new context . namespace . elements . Member ( key , 'dummy' ) ;
80+ member . description = `${ key . toValue ( ) } description` ;
81+ return member ;
82+ }
83+ ) ( object ) ;
84+
85+ const result = parseMap ( context , 'dummy' , 'key' , parseToMember ) ( member ) ;
86+
87+ expect ( result ) . to . not . contain . annotations ;
88+ expect ( result . length ) . to . be . equal ( 1 ) ;
89+
90+ const members = result . get ( 0 ) ;
91+
92+ expect ( members . length ) . to . be . equal ( 1 ) ;
93+
94+ const member1 = members . content [ 0 ] ;
95+ expect ( member1 ) . to . be . instanceof ( context . namespace . elements . Member ) ;
96+ expect ( member1 . key . toValue ( ) ) . to . be . equal ( 'uno' ) ;
97+ expect ( member1 . value ) . to . be . instanceof ( context . namespace . elements . String ) ;
98+ expect ( member1 . value . toValue ( ) ) . to . be . equal ( 'dummy' ) ;
99+ expect ( member1 . description ) . to . be . instanceof ( context . namespace . elements . String ) ;
100+ expect ( member1 . description . toValue ( ) ) . to . equal ( 'uno description' ) ;
101+ } ) ;
102+
71103 it ( 'propagate annotations from parser' , ( ) => {
72104 const member = new context . namespace . elements . Member ( 'key' , {
73105 uno : { } ,
0 commit comments