@@ -264,7 +264,7 @@ describe('draftToMarkdown', function () {
264264 var rawObject = { "entityMap" :{ } , "blocks" :[ { "key" :"2unrq" , "text" :"asdasdasd" , "type" :"unstyled" , "depth" :0 , "inlineStyleRanges" :[ { "offset" :0 , "length" :9 , "style" :"BOLD" } ] , "entityRanges" :[ ] , "data" :{ } } , { "key" :"62od7" , "text" :"asdasd" , "type" :"unstyled" , "depth" :0 , "inlineStyleRanges" :[ { "offset" :0 , "length" :6 , "style" :"BOLD" } ] , "entityRanges" :[ ] , "data" :{ } } , { "key" :"c5obb" , "text" :"asdasdasdmmmasdads" , "type" :"unstyled" , "depth" :0 , "inlineStyleRanges" :[ { "offset" :0 , "length" :9 , "style" :"BOLD" } , { "offset" :0 , "length" :12 , "style" :"ITALIC" } ] , "entityRanges" :[ ] , "data" :{ } } ] } ;
265265 /* eslint-enable */
266266 var markdown = draftToMarkdown ( rawObject ) ;
267- expect ( markdown ) . toEqual ( '**asdasdasd**\n\n**asdasd**\n\n**_asdasdasd_**_mmm_asdads ' ) ;
267+ expect ( markdown ) . toEqual ( '**asdasdasd**\n\n**asdasd**\n\n_**asdasdasd**mmm_asdads ' ) ;
268268
269269 /* eslint-disable */
270270 rawObject = { "entityMap" :{ "0" :{ "type" :"mention" , "mutability" :"SEGMENTED" , "data" :{ "mention" :{ "name" :"Bran Stark" , "avatar" :"https://d1ojh8nvjh9gcx.cloudfront.net/accounts/168181/2e4bff18a328c50404c411c04e608a32a967b1a2/large_2x.png" , "link" :null , "id" :168181 } } } } , "blocks" :[ { "key" :"bkvjj" , "text" :"asdadd adasdasd Bran Stark sadadsadasddasdasdasdsadsadasdsadasdasdasdsa" , "type" :"unstyled" , "depth" :0 , "inlineStyleRanges" :[ { "offset" :7 , "length" :9 , "style" :"BOLD" } , { "offset" :27 , "length" :27 , "style" :"BOLD" } , { "offset" :38 , "length" :7 , "style" :"ITALIC" } , { "offset" :63 , "length" :8 , "style" :"ITALIC" } ] , "entityRanges" :[ { "offset" :16 , "length" :10 , "key" :0 } ] , "data" :{ } } ] } ;
@@ -453,6 +453,55 @@ describe('draftToMarkdown', function () {
453453 var markdown = draftToMarkdown ( rawObject ) ;
454454 expect ( markdown ) . toEqual ( 'Testing 👍 _italic_ words words words **bold** words words words' ) ;
455455 } ) ;
456+
457+ it ( 'handles overlapping inline style ranges correctly' , function ( ) {
458+ var rawObject = {
459+ blocks : [
460+ {
461+ key : '8ohj1' ,
462+ text : 'foo bar baz' ,
463+ type : 'unstyled' ,
464+ depth : 0 ,
465+ inlineStyleRanges : [
466+ { offset : 0 , length : 7 , style : 'ITALIC' } ,
467+ { offset : 4 , length : 7 , style : 'BOLD' }
468+ ] ,
469+ entityRanges : [ ] ,
470+ data : { }
471+ }
472+ ] ,
473+ entityMap : { }
474+ } ;
475+ var markdown = draftToMarkdown ( rawObject ) ;
476+ expect ( markdown ) . toEqual ( '_foo **bar**_ **baz**' ) ;
477+ } ) ;
478+
479+ it ( 'handles overlapping entities & inline style ranges correctly' , function ( ) {
480+ var rawObject = {
481+ blocks : [
482+ {
483+ key : '5rq8m' ,
484+ text : 'foo bar baz' ,
485+ type : 'unstyled' ,
486+ depth : 0 ,
487+ inlineStyleRanges : [ { offset : 4 , length : 7 , style : 'BOLD' } ] ,
488+ entityRanges : [ { offset : 0 , length : 7 , key : 0 } ] ,
489+ data : { }
490+ }
491+ ] ,
492+ entityMap : {
493+ '0' : {
494+ type : 'LINK' ,
495+ mutability : 'MUTABLE' ,
496+ data : {
497+ url : 'http://localhost:8000' ,
498+ }
499+ }
500+ }
501+ } ;
502+ var markdown = draftToMarkdown ( rawObject ) ;
503+ expect ( markdown ) . toEqual ( '[foo **bar**](http://localhost:8000) **baz**' ) ;
504+ } ) ;
456505 } ) ;
457506
458507 describe ( 'escaping markdown characters' , function ( ) {
0 commit comments