summaryrefslogtreecommitdiff
path: root/spec/frontend/content_editor/test_utils.js
blob: a92ceb6d058dce4f69f09d11e3f55525bc0e68c7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
import { Node } from '@tiptap/core';

export const createTestContentEditorExtension = () => ({
  tiptapExtension: Node.create({
    name: 'label',
    priority: 101,
    inline: true,
    group: 'inline',
    addAttributes() {
      return {
        labelName: {
          default: null,
          parseHTML: (element) => {
            return { labelName: element.dataset.labelName };
          },
        },
      };
    },
    parseHTML() {
      return [
        {
          tag: 'span[data-reference="label"]',
        },
      ];
    },
    renderHTML({ HTMLAttributes }) {
      return ['span', HTMLAttributes, 0];
    },
  }),
  serializer: (state, node) => {
    state.write(`~${node.attrs.labelName}`);
    state.closeBlock(node);
  },
});