Skip to content

Commit c0b54e4

Browse files
committed
specs for overlapping inline styles and entity ranges
- added 2 failing tests - changed one spec to optimize complex value handling (tags closing fist should open last)
1 parent b1d2f83 commit c0b54e4

1 file changed

Lines changed: 50 additions & 1 deletion

File tree

test/draft-to-markdown.spec.js

Lines changed: 50 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)