chore(widget-markdown): add skipped tests for invalid markdown (#2052)
This commit is contained in:
parent
a6c51fe14d
commit
d082b97a41
@ -87,4 +87,291 @@ describe('slate', () => {
|
|||||||
};
|
};
|
||||||
expect(slateToMarkdown(slateAst)).toEqual('foo **bar**');
|
expect(slateToMarkdown(slateAst)).toEqual('foo **bar**');
|
||||||
});
|
});
|
||||||
|
|
||||||
|
describe.skip('with nested styles within a single word', () => {
|
||||||
|
it('should not produce invalid markdown when a bold word has italics applied to a smaller part', () => {
|
||||||
|
const slateAst = {
|
||||||
|
object: 'block',
|
||||||
|
type: 'root',
|
||||||
|
nodes: [
|
||||||
|
{
|
||||||
|
object: 'block',
|
||||||
|
type: 'paragraph',
|
||||||
|
nodes: [
|
||||||
|
{
|
||||||
|
object: 'text',
|
||||||
|
data: undefined,
|
||||||
|
leaves: [
|
||||||
|
{ text: 'h', marks: [{ type: 'bold' }] },
|
||||||
|
{ text: 'e', marks: [{ type: 'bold' }, { type: 'italic' }] },
|
||||||
|
{ text: 'y', marks: [{ type: 'bold' }] },
|
||||||
|
],
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
],
|
||||||
|
};
|
||||||
|
expect(slateToMarkdown(slateAst)).toEqual('**h**_**e**_**y**');
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should not produce invalid markdown when an italic word has bold applied to a smaller part', () => {
|
||||||
|
const slateAst = {
|
||||||
|
object: 'block',
|
||||||
|
type: 'root',
|
||||||
|
nodes: [
|
||||||
|
{
|
||||||
|
object: 'block',
|
||||||
|
type: 'paragraph',
|
||||||
|
nodes: [
|
||||||
|
{
|
||||||
|
object: 'text',
|
||||||
|
data: undefined,
|
||||||
|
leaves: [
|
||||||
|
{ text: 'h', marks: [{ type: 'italic' }] },
|
||||||
|
{ text: 'e', marks: [{ type: 'italic' }, { type: 'bold' }] },
|
||||||
|
{ text: 'y', marks: [{ type: 'italic' }] },
|
||||||
|
],
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
],
|
||||||
|
};
|
||||||
|
expect(slateToMarkdown(slateAst)).toEqual('_h**_e_**y_');
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should not produce invalid markdown when an italic word has bold applied to a smaller part', () => {
|
||||||
|
const slateAst = {
|
||||||
|
object: 'block',
|
||||||
|
type: 'root',
|
||||||
|
nodes: [
|
||||||
|
{
|
||||||
|
object: 'block',
|
||||||
|
type: 'paragraph',
|
||||||
|
nodes: [
|
||||||
|
{
|
||||||
|
object: 'text',
|
||||||
|
data: undefined,
|
||||||
|
leaves: [
|
||||||
|
{ text: 'h', marks: [{ type: 'italic' }] },
|
||||||
|
{ text: 'e', marks: [{ type: 'italic' }, { type: 'bold' }] },
|
||||||
|
{ text: 'y', marks: [{ type: 'italic' }] },
|
||||||
|
],
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
],
|
||||||
|
};
|
||||||
|
expect(slateToMarkdown(slateAst)).toEqual('_h**_e_**y_');
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should handle italics inside bold inside strikethrough', () => {
|
||||||
|
const slateAst = {
|
||||||
|
object: 'block',
|
||||||
|
type: 'root',
|
||||||
|
nodes: [
|
||||||
|
{
|
||||||
|
object: 'block',
|
||||||
|
type: 'paragraph',
|
||||||
|
nodes: [
|
||||||
|
{
|
||||||
|
object: 'text',
|
||||||
|
data: undefined,
|
||||||
|
leaves: [
|
||||||
|
{ text: 'h', marks: [{ type: 'strikethrough' }] },
|
||||||
|
{
|
||||||
|
text: 'e',
|
||||||
|
marks: [{ type: 'strikethrough' }, { type: 'bold' }],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'l',
|
||||||
|
marks: [{ type: 'strikethrough' }, { type: 'bold' }, { type: 'italic' }],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'l',
|
||||||
|
marks: [{ type: 'strikethrough' }, { type: 'bold' }],
|
||||||
|
},
|
||||||
|
{ text: 'o', marks: [{ type: 'strikethrough' }] },
|
||||||
|
],
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
],
|
||||||
|
};
|
||||||
|
|
||||||
|
expect(slateToMarkdown(slateAst)).toEqual('~~h~~**~~e~~**_~~**l**~~_**~~l~~**~~o~~');
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should handle bold inside italics inside strikethrough', () => {
|
||||||
|
const slateAst = {
|
||||||
|
object: 'block',
|
||||||
|
type: 'root',
|
||||||
|
nodes: [
|
||||||
|
{
|
||||||
|
object: 'block',
|
||||||
|
type: 'paragraph',
|
||||||
|
nodes: [
|
||||||
|
{
|
||||||
|
object: 'text',
|
||||||
|
data: undefined,
|
||||||
|
leaves: [
|
||||||
|
{ text: 'h', marks: [{ type: 'strikethrough' }] },
|
||||||
|
{
|
||||||
|
text: 'e',
|
||||||
|
marks: [{ type: 'strikethrough' }, { type: 'italic' }],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'l',
|
||||||
|
marks: [{ type: 'strikethrough' }, { type: 'italic' }, { type: 'bold' }],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'l',
|
||||||
|
marks: [{ type: 'strikethrough' }, { type: 'italic' }],
|
||||||
|
},
|
||||||
|
{ text: 'o', marks: [{ type: 'strikethrough' }] },
|
||||||
|
],
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
],
|
||||||
|
};
|
||||||
|
|
||||||
|
expect(slateToMarkdown(slateAst)).toEqual('~~h~~_~~e~~_**_~~l~~_**_~~l~~_~~o~~');
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should handle strikethrough inside italics inside bold', () => {
|
||||||
|
const slateAst = {
|
||||||
|
object: 'block',
|
||||||
|
type: 'root',
|
||||||
|
nodes: [
|
||||||
|
{
|
||||||
|
object: 'block',
|
||||||
|
type: 'paragraph',
|
||||||
|
nodes: [
|
||||||
|
{
|
||||||
|
object: 'text',
|
||||||
|
data: undefined,
|
||||||
|
leaves: [
|
||||||
|
{ text: 'h', marks: [{ type: 'bold' }] },
|
||||||
|
{ text: 'e', marks: [{ type: 'bold' }, { type: 'italic' }] },
|
||||||
|
{
|
||||||
|
text: 'l',
|
||||||
|
marks: [{ type: 'bold' }, { type: 'italic' }, { type: 'strikethrough' }],
|
||||||
|
},
|
||||||
|
{ text: 'l', marks: [{ type: 'bold' }, { type: 'italic' }] },
|
||||||
|
{ text: 'o', marks: [{ type: 'bold' }] },
|
||||||
|
],
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
],
|
||||||
|
};
|
||||||
|
|
||||||
|
expect(slateToMarkdown(slateAst)).toEqual('**h**_**e**_~~**_l_**~~_**l**_**o**');
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should handle italics inside strikethrough inside bold', () => {
|
||||||
|
const slateAst = {
|
||||||
|
object: 'block',
|
||||||
|
type: 'root',
|
||||||
|
nodes: [
|
||||||
|
{
|
||||||
|
object: 'block',
|
||||||
|
type: 'paragraph',
|
||||||
|
nodes: [
|
||||||
|
{
|
||||||
|
object: 'text',
|
||||||
|
data: undefined,
|
||||||
|
leaves: [
|
||||||
|
{ text: 'h', marks: [{ type: 'bold' }] },
|
||||||
|
{
|
||||||
|
text: 'e',
|
||||||
|
marks: [{ type: 'bold' }, { type: 'strikethrough' }],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'l',
|
||||||
|
marks: [{ type: 'bold' }, { type: 'strikethrough' }, { type: 'italic' }],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'l',
|
||||||
|
marks: [{ type: 'bold' }, { type: 'strikethrough' }],
|
||||||
|
},
|
||||||
|
{ text: 'o', marks: [{ type: 'bold' }] },
|
||||||
|
],
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
],
|
||||||
|
};
|
||||||
|
|
||||||
|
expect(slateToMarkdown(slateAst)).toEqual('**h**~~**e**~~_~~**l**~~_~~**l**~~**o**');
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should handle strikethrough inside bold inside italics', () => {
|
||||||
|
const slateAst = {
|
||||||
|
object: 'block',
|
||||||
|
type: 'root',
|
||||||
|
nodes: [
|
||||||
|
{
|
||||||
|
object: 'block',
|
||||||
|
type: 'paragraph',
|
||||||
|
nodes: [
|
||||||
|
{
|
||||||
|
object: 'text',
|
||||||
|
data: undefined,
|
||||||
|
leaves: [
|
||||||
|
{ text: 'h', marks: [{ type: 'italic' }] },
|
||||||
|
{ text: 'e', marks: [{ type: 'italic' }, { type: 'bold' }] },
|
||||||
|
{
|
||||||
|
text: 'l',
|
||||||
|
marks: [{ type: 'italic' }, { type: 'bold' }, { type: 'strikethrough' }],
|
||||||
|
},
|
||||||
|
{ text: 'l', marks: [{ type: 'italic' }, { type: 'bold' }] },
|
||||||
|
{ text: 'o', marks: [{ type: 'italic' }] },
|
||||||
|
],
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
],
|
||||||
|
};
|
||||||
|
|
||||||
|
expect(slateToMarkdown(slateAst)).toEqual('_h_**_e_**~~**_l_**~~**_l_**_o_');
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should handle bold inside strikethrough inside italics', () => {
|
||||||
|
const slateAst = {
|
||||||
|
object: 'block',
|
||||||
|
type: 'root',
|
||||||
|
nodes: [
|
||||||
|
{
|
||||||
|
object: 'block',
|
||||||
|
type: 'paragraph',
|
||||||
|
nodes: [
|
||||||
|
{
|
||||||
|
object: 'text',
|
||||||
|
data: undefined,
|
||||||
|
leaves: [
|
||||||
|
{ text: 'h', marks: [{ type: 'italic' }] },
|
||||||
|
{
|
||||||
|
text: 'e',
|
||||||
|
marks: [{ type: 'italic' }, { type: 'strikethrough' }],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'l',
|
||||||
|
marks: [{ type: 'italic' }, { type: 'strikethrough' }, { type: 'bold' }],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'l',
|
||||||
|
marks: [{ type: 'italic' }, { type: 'strikethrough' }],
|
||||||
|
},
|
||||||
|
{ text: 'o', marks: [{ type: 'italic' }] },
|
||||||
|
],
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
],
|
||||||
|
};
|
||||||
|
|
||||||
|
expect(slateToMarkdown(slateAst)).toEqual('_h_~~_e_~~**_~~l~~_**~~_l_~~_o_');
|
||||||
|
});
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
Loading…
x
Reference in New Issue
Block a user