@@ -292,6 +292,65 @@ test('parse', function (t) {
292
292
{ type : 'text' , content : ' 10 ' } ,
293
293
]
294
294
} ] , 'should not give voidElements children' ) ;
295
+
296
+ html = '<div></div>\n' ;
297
+ parsed = HTML . parse ( html ) ;
298
+ t . deepEqual ( parsed , [ {
299
+ type : 'tag' ,
300
+ name : 'div' ,
301
+ attrs : { } ,
302
+ voidElement : false ,
303
+ children : [ ]
304
+ } , {
305
+ type : 'text' , content : '\n'
306
+ } ] , 'should not explode on trailing whitespace' ) ;
307
+
308
+ html = '<div>Hi</div> There ' ;
309
+ parsed = HTML . parse ( html ) ;
310
+ t . deepEqual ( parsed , [ {
311
+ type : 'tag' ,
312
+ name : 'div' ,
313
+ attrs : { } ,
314
+ voidElement : false ,
315
+ children : [
316
+ { type : 'text' , content : 'Hi' }
317
+ ]
318
+ } , {
319
+ type : 'text' , content : ' There '
320
+ } ] , 'should handle trailing text nodes at the top-level' ) ;
321
+
322
+ html = '<div>Hi</div> There <span>something</span> <a></a>else ' ;
323
+ parsed = HTML . parse ( html ) ;
324
+ t . deepEqual ( parsed , [ {
325
+ type : 'tag' ,
326
+ name : 'div' ,
327
+ attrs : { } ,
328
+ voidElement : false ,
329
+ children : [
330
+ { type : 'text' , content : 'Hi' }
331
+ ]
332
+ } , {
333
+ type : 'text' , content : ' There '
334
+ } , {
335
+ type : 'tag' ,
336
+ name : 'span' ,
337
+ attrs : { } ,
338
+ voidElement : false ,
339
+ children : [
340
+ { type : 'text' , content : 'something' }
341
+ ]
342
+ } , {
343
+ type : 'text' , content : ' '
344
+ } , {
345
+ type : 'tag' ,
346
+ name : 'a' ,
347
+ attrs : { } ,
348
+ voidElement : false ,
349
+ children : [ ]
350
+ } , {
351
+ type : 'text' , content : 'else '
352
+ } ] , 'should handle text nodes in the middle of tags at the top-level' ) ;
353
+
295
354
t . end ( ) ;
296
355
} ) ;
297
356
0 commit comments