Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'spec/frontend/content_editor/extensions/html_nodes_spec.js')
-rw-r--r--spec/frontend/content_editor/extensions/html_nodes_spec.js42
1 files changed, 42 insertions, 0 deletions
diff --git a/spec/frontend/content_editor/extensions/html_nodes_spec.js b/spec/frontend/content_editor/extensions/html_nodes_spec.js
new file mode 100644
index 00000000000..24c68239025
--- /dev/null
+++ b/spec/frontend/content_editor/extensions/html_nodes_spec.js
@@ -0,0 +1,42 @@
+import HTMLNodes from '~/content_editor/extensions/html_nodes';
+import { createTestEditor, createDocBuilder } from '../test_utils';
+
+describe('content_editor/extensions/html_nodes', () => {
+ let tiptapEditor;
+ let doc;
+ let div;
+ let pre;
+ let p;
+
+ beforeEach(() => {
+ tiptapEditor = createTestEditor({ extensions: [...HTMLNodes] });
+
+ ({
+ builders: { doc, p, pre, div },
+ } = createDocBuilder({
+ tiptapEditor,
+ names: {
+ ...HTMLNodes.reduce(
+ (builders, htmlNode) => ({
+ ...builders,
+ [htmlNode.name]: { nodeType: htmlNode.name },
+ }),
+ {},
+ ),
+ },
+ }));
+ });
+
+ it.each`
+ input | insertedNodes
+ ${'<div><p>foo</p></div>'} | ${() => div(p('foo'))}
+ ${'<pre><p>foo</p></pre>'} | ${() => pre(p('foo'))}
+ `('parses and creates nodes for $input', ({ input, insertedNodes }) => {
+ const expectedDoc = doc(insertedNodes());
+
+ tiptapEditor.commands.setContent(input);
+
+ expect(tiptapEditor.getJSON()).toEqual(expectedDoc.toJSON());
+ expect(tiptapEditor.getHTML()).toEqual(input);
+ });
+});