diff options
Diffstat (limited to 'spec/frontend/content_editor/services/markdown_sourcemap_spec.js')
-rw-r--r-- | spec/frontend/content_editor/services/markdown_sourcemap_spec.js | 29 |
1 files changed, 24 insertions, 5 deletions
diff --git a/spec/frontend/content_editor/services/markdown_sourcemap_spec.js b/spec/frontend/content_editor/services/markdown_sourcemap_spec.js index 6f908f468f6..abd9588daff 100644 --- a/spec/frontend/content_editor/services/markdown_sourcemap_spec.js +++ b/spec/frontend/content_editor/services/markdown_sourcemap_spec.js @@ -2,8 +2,8 @@ import { Extension } from '@tiptap/core'; import BulletList from '~/content_editor/extensions/bullet_list'; import ListItem from '~/content_editor/extensions/list_item'; import Paragraph from '~/content_editor/extensions/paragraph'; -import markdownSerializer from '~/content_editor/services/markdown_serializer'; -import { getMarkdownSource } from '~/content_editor/services/markdown_sourcemap'; +import markdownDeserializer from '~/content_editor/services/markdown_deserializer'; +import { getMarkdownSource, getFullSource } from '~/content_editor/services/markdown_sourcemap'; import { createTestEditor, createDocBuilder } from '../test_utils'; const BULLET_LIST_MARKDOWN = `+ list item 1 @@ -52,10 +52,29 @@ const { }); describe('content_editor/services/markdown_sourcemap', () => { + describe('getFullSource', () => { + it.each` + lastChild | expected + ${null} | ${[]} + ${{ nodeName: 'paragraph' }} | ${[]} + ${{ nodeName: '#comment', textContent: null }} | ${[]} + ${{ nodeName: '#comment', textContent: '+ list item 1\n+ list item 2' }} | ${['+ list item 1', '+ list item 2']} + `('with lastChild=$lastChild, returns $expected', ({ lastChild, expected }) => { + const element = { + ownerDocument: { + body: { + lastChild, + }, + }, + }; + + expect(getFullSource(element)).toEqual(expected); + }); + }); + it('gets markdown source for a rendered HTML element', async () => { - const deserialized = await markdownSerializer({ + const { document } = await markdownDeserializer({ render: () => BULLET_LIST_HTML, - serializerConfig: {}, }).deserialize({ schema: tiptapEditor.schema, content: BULLET_LIST_MARKDOWN, @@ -76,6 +95,6 @@ describe('content_editor/services/markdown_sourcemap', () => { ), ); - expect(deserialized).toEqual(expected.toJSON()); + expect(document.toJSON()).toEqual(expected.toJSON()); }); }); |