@@ -128,44 +128,104 @@ describe('#parseYAML', () => {
128128 expect ( array . first ) . to . have . sourceMapEndColumn ( 9 ) ;
129129 } ) ;
130130
131- it ( 'can parse a dictionary into an object element' , ( ) => {
132- const element = parseYAML ( 'key: value' , context ) ;
133-
134- expect ( element ) . to . be . instanceof ( namespace . elements . ParseResult ) ;
135- expect ( element . length ) . to . equal ( 1 ) ;
136-
137- const object = element . first ;
138-
139- expect ( object ) . to . be . instanceof ( namespace . elements . Object ) ;
140- expect ( object . toValue ( ) ) . to . deep . equal ( { key : 'value' } ) ;
141- expect ( object ) . to . have . sourceMapStart ( 0 ) ;
142- expect ( object ) . to . have . sourceMapOffset ( 10 ) ;
143- expect ( object ) . to . have . sourceMapStartLine ( 1 ) ;
144- expect ( object ) . to . have . sourceMapStartColumn ( 1 ) ;
145- expect ( object ) . to . have . sourceMapEndLine ( 1 ) ;
146- expect ( object ) . to . have . sourceMapEndColumn ( 11 ) ;
131+ describe ( 'map' , ( ) => {
132+ it ( 'can parse a dictionary into an object element' , ( ) => {
133+ const element = parseYAML ( 'key: value' , context ) ;
134+
135+ expect ( element ) . to . be . instanceof ( namespace . elements . ParseResult ) ;
136+ expect ( element . length ) . to . equal ( 1 ) ;
137+
138+ const object = element . first ;
139+
140+ expect ( object ) . to . be . instanceof ( namespace . elements . Object ) ;
141+ expect ( object . toValue ( ) ) . to . deep . equal ( { key : 'value' } ) ;
142+ expect ( object ) . to . have . sourceMapStart ( 0 ) ;
143+ expect ( object ) . to . have . sourceMapOffset ( 10 ) ;
144+ expect ( object ) . to . have . sourceMapStartLine ( 1 ) ;
145+ expect ( object ) . to . have . sourceMapStartColumn ( 1 ) ;
146+ expect ( object ) . to . have . sourceMapEndLine ( 1 ) ;
147+ expect ( object ) . to . have . sourceMapEndColumn ( 11 ) ;
148+
149+ const member = object . first ;
150+
151+ expect ( member ) . to . be . instanceof ( namespace . elements . Member ) ;
152+
153+ expect ( member . key ) . to . be . instanceof ( namespace . elements . String ) ;
154+ expect ( member . key . toValue ( ) ) . to . equal ( 'key' ) ;
155+ expect ( member . key ) . to . have . sourceMapStart ( 0 ) ;
156+ expect ( member . key ) . to . have . sourceMapOffset ( 3 ) ;
157+ expect ( member . key ) . to . have . sourceMapStartLine ( 1 ) ;
158+ expect ( member . key ) . to . have . sourceMapStartColumn ( 1 ) ;
159+ expect ( member . key ) . to . have . sourceMapEndLine ( 1 ) ;
160+ expect ( member . key ) . to . have . sourceMapEndColumn ( 4 ) ;
161+
162+ expect ( member . value ) . to . be . instanceof ( namespace . elements . String ) ;
163+ expect ( member . value . toValue ( ) ) . to . equal ( 'value' ) ;
164+ expect ( member . value ) . to . have . sourceMapStart ( 5 ) ;
165+ expect ( member . value ) . to . have . sourceMapOffset ( 5 ) ;
166+ expect ( member . value ) . to . have . sourceMapStartLine ( 1 ) ;
167+ expect ( member . value ) . to . have . sourceMapStartColumn ( 6 ) ;
168+ expect ( member . value ) . to . have . sourceMapEndLine ( 1 ) ;
169+ expect ( member . value ) . to . have . sourceMapEndColumn ( 11 ) ;
170+ } ) ;
147171
148- const member = object . first ;
172+ it ( 'can parse a map into an object element' , ( ) => {
173+ const parseResult = parseYAML ( '!!map\n key : value' , context ) ;
149174
150- expect ( member ) . to . be . instanceof ( namespace . elements . Member ) ;
175+ expect ( parseResult ) . to . be . instanceof ( namespace . elements . ParseResult ) ;
176+ expect ( parseResult . length ) . to . equal ( 1 ) ;
177+
178+ const object = parseResult . first ;
179+
180+ expect ( object ) . to . be . instanceof ( namespace . elements . Object ) ;
181+ expect ( object . toValue ( ) ) . to . deep . equal ( { key : 'value' } ) ;
182+ expect ( object ) . to . have . sourceMapStart ( 0 ) ;
183+ expect ( object ) . to . have . sourceMapOffset ( 19 ) ;
184+ expect ( object ) . to . have . sourceMapStartLine ( 1 ) ;
185+ expect ( object ) . to . have . sourceMapStartColumn ( 1 ) ;
186+ expect ( object ) . to . have . sourceMapEndLine ( 2 ) ;
187+ expect ( object ) . to . have . sourceMapEndColumn ( 14 ) ;
188+
189+ const member = object . first ;
190+
191+ expect ( member ) . to . be . instanceof ( namespace . elements . Member ) ;
192+
193+ expect ( member . key ) . to . be . instanceof ( namespace . elements . String ) ;
194+ expect ( member . key . toValue ( ) ) . to . equal ( 'key' ) ;
195+ expect ( member . key ) . to . have . sourceMapStart ( 8 ) ;
196+ expect ( member . key ) . to . have . sourceMapOffset ( 3 ) ;
197+ expect ( member . key ) . to . have . sourceMapStartLine ( 2 ) ;
198+ expect ( member . key ) . to . have . sourceMapStartColumn ( 3 ) ;
199+ expect ( member . key ) . to . have . sourceMapEndLine ( 2 ) ;
200+ expect ( member . key ) . to . have . sourceMapEndColumn ( 6 ) ;
201+
202+ expect ( member . value ) . to . be . instanceof ( namespace . elements . String ) ;
203+ expect ( member . value . toValue ( ) ) . to . equal ( 'value' ) ;
204+ expect ( member . value ) . to . have . sourceMapStart ( 14 ) ;
205+ expect ( member . value ) . to . have . sourceMapOffset ( 5 ) ;
206+ expect ( member . value ) . to . have . sourceMapStartLine ( 2 ) ;
207+ expect ( member . value ) . to . have . sourceMapStartColumn ( 9 ) ;
208+ expect ( member . value ) . to . have . sourceMapEndLine ( 2 ) ;
209+ expect ( member . value ) . to . have . sourceMapEndColumn ( 14 ) ;
210+ } ) ;
151211
152- expect ( member . key ) . to . be . instanceof ( namespace . elements . String ) ;
153- expect ( member . key . toValue ( ) ) . to . equal ( 'key' ) ;
154- expect ( member . key ) . to . have . sourceMapStart ( 0 ) ;
155- expect ( member . key ) . to . have . sourceMapOffset ( 3 ) ;
156- expect ( member . key ) . to . have . sourceMapStartLine ( 1 ) ;
157- expect ( member . key ) . to . have . sourceMapStartColumn ( 1 ) ;
158- expect ( member . key ) . to . have . sourceMapEndLine ( 1 ) ;
159- expect ( member . key ) . to . have . sourceMapEndColumn ( 4 ) ;
212+ it ( 'can parse an empty map into an object element' , ( ) => {
213+ const parseResult = parseYAML ( '!!map' , context ) ;
160214
161- expect ( member . value ) . to . be . instanceof ( namespace . elements . String ) ;
162- expect ( member . value . toValue ( ) ) . to . equal ( 'value' ) ;
163- expect ( member . value ) . to . have . sourceMapStart ( 5 ) ;
164- expect ( member . value ) . to . have . sourceMapOffset ( 5 ) ;
165- expect ( member . value ) . to . have . sourceMapStartLine ( 1 ) ;
166- expect ( member . value ) . to . have . sourceMapStartColumn ( 6 ) ;
167- expect ( member . value ) . to . have . sourceMapEndLine ( 1 ) ;
168- expect ( member . value ) . to . have . sourceMapEndColumn ( 11 ) ;
215+ expect ( parseResult ) . to . be . instanceof ( namespace . elements . ParseResult ) ;
216+ expect ( parseResult . length ) . to . equal ( 1 ) ;
217+
218+ const object = parseResult . first ;
219+
220+ expect ( object ) . to . be . instanceof ( namespace . elements . Object ) ;
221+ expect ( object . length ) . to . equal ( 0 ) ;
222+ expect ( object ) . to . have . sourceMapStart ( 0 ) ;
223+ expect ( object ) . to . have . sourceMapOffset ( 5 ) ;
224+ expect ( object ) . to . have . sourceMapStartLine ( 1 ) ;
225+ expect ( object ) . to . have . sourceMapStartColumn ( 1 ) ;
226+ expect ( object ) . to . have . sourceMapEndLine ( 1 ) ;
227+ expect ( object ) . to . have . sourceMapEndColumn ( 6 ) ;
228+ } ) ;
169229 } ) ;
170230
171231 it ( 'can parse a binary into a string element' , ( ) => {
0 commit comments