Skip to content

Commit 5e5e942

Browse files
committed
test: Add markdownThroughEditor test for complex table
Signed-off-by: Jonas <[email protected]>
1 parent a2ae33a commit 5e5e942

File tree

1 file changed

+42
-7
lines changed

1 file changed

+42
-7
lines changed

src/tests/nodes/Table.spec.js

Lines changed: 42 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import { test as baseTest } from 'vitest'
77
import { createRichEditor } from '../../EditorFactory.js'
88
import { createMarkdownSerializer } from '../../extensions/Markdown.js'
9+
import { markdownThroughEditor } from '../testHelpers/markdown.js'
910

1011
import markdownit from '../../markdownit/index.js'
1112

@@ -37,12 +38,32 @@ const test = baseTest.extend({
3738
},
3839
})
3940

40-
describe('Table', () => {
41+
describe('Table extension', () => {
4142
test('Markdown-IT renders tables', () => {
4243
const rendered = markdownit.render(input)
4344
expect(rendered).toBe(output)
4445
})
4546

47+
it('markdown table is preserved through editor', () => {
48+
expect(markdownThroughEditor('a|b\n-|-\n1|2\n')).toBe(
49+
'| a | b |\n|---|---|\n| 1 | 2 |\n',
50+
)
51+
52+
const complexTable = `
53+
| #| header1 | header2 |
54+
|--:|-------------------|---------------|
55+
| 1| list: | code: | \\
56+
| | | | \\
57+
| | * item1 | \`\`\`js | \\
58+
| | * item2 | const x = '1' | \\
59+
| | | \`\`\` | \\
60+
| | ![alt](/test.png) | |
61+
| 2| cell3 | cell4 |
62+
| 3| | cell5 |
63+
`
64+
expect(markdownThroughEditor(complexTable)).toBe(complexTable)
65+
})
66+
4667
test('Load into editor', ({ editor }) => {
4768
editor.commands.setContent(markdownit.render(input))
4869

@@ -55,11 +76,18 @@ describe('Table', () => {
5576
th({ dir: 'ltr' }, 'heading 3'),
5677
),
5778
tr(
58-
td({ dir: 'ltr', textAlign: 'center' }, p({ dir: 'ltr' }, 'center')),
59-
td({ dir: 'ltr', textAlign: 'right' }, p({ dir: 'ltr' }, 'right')),
79+
td(
80+
{ dir: 'ltr', textAlign: 'center' },
81+
p({ dir: 'ltr' }, 'center'),
82+
),
83+
td(
84+
{ dir: 'ltr', textAlign: 'right' },
85+
p({ dir: 'ltr' }, 'right'),
86+
),
6087
td(
6188
{ dir: 'ltr' },
62-
p({ dir: 'ltr' },
89+
p(
90+
{ dir: 'ltr' },
6391
'left cell ',
6492
br({ syntax: 'html' }),
6593
'with line break',
@@ -82,11 +110,18 @@ describe('Table', () => {
82110
th({ dir: 'ltr' }, 'heading 3'),
83111
),
84112
tr(
85-
td({ dir: 'ltr', textAlign: 'center' }, p({ dir: 'ltr' }, 'center')),
86-
td({ dir: 'ltr', textAlign: 'right' }, p({ dir: 'ltr' }, 'right')),
113+
td(
114+
{ dir: 'ltr', textAlign: 'center' },
115+
p({ dir: 'ltr' }, 'center'),
116+
),
117+
td(
118+
{ dir: 'ltr', textAlign: 'right' },
119+
p({ dir: 'ltr' }, 'right'),
120+
),
87121
td(
88122
{ dir: 'ltr' },
89-
p({ dir: 'ltr' },
123+
p(
124+
{ dir: 'ltr' },
90125
'left cell ',
91126
br({ syntax: ' ' }),
92127
'with line break',

0 commit comments

Comments
 (0)