diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2023-05-17 19:05:49 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2023-05-17 19:05:49 +0300 |
commit | 43a25d93ebdabea52f99b05e15b06250cd8f07d7 (patch) | |
tree | dceebdc68925362117480a5d672bcff122fb625b /spec/frontend/content_editor/test_utils.js | |
parent | 20c84b99005abd1c82101dfeff264ac50d2df211 (diff) |
Add latest changes from gitlab-org/gitlab@16-0-stable-eev16.0.0-rc42
Diffstat (limited to 'spec/frontend/content_editor/test_utils.js')
-rw-r--r-- | spec/frontend/content_editor/test_utils.js | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/spec/frontend/content_editor/test_utils.js b/spec/frontend/content_editor/test_utils.js index 0fa0e65cd26..1f4a367e46c 100644 --- a/spec/frontend/content_editor/test_utils.js +++ b/spec/frontend/content_editor/test_utils.js @@ -5,6 +5,7 @@ import { Text } from '@tiptap/extension-text'; import { Editor } from '@tiptap/vue-2'; import { builders, eq } from 'prosemirror-test-builder'; import { nextTick } from 'vue'; +import waitForPromises from 'helpers/wait_for_promises'; import Audio from '~/content_editor/extensions/audio'; import Blockquote from '~/content_editor/extensions/blockquote'; import Bold from '~/content_editor/extensions/bold'; @@ -17,6 +18,7 @@ import DescriptionList from '~/content_editor/extensions/description_list'; import Details from '~/content_editor/extensions/details'; import DetailsContent from '~/content_editor/extensions/details_content'; import Diagram from '~/content_editor/extensions/diagram'; +import DrawioDiagram from '~/content_editor/extensions/drawio_diagram'; import Emoji from '~/content_editor/extensions/emoji'; import FootnoteDefinition from '~/content_editor/extensions/footnote_definition'; import FootnoteReference from '~/content_editor/extensions/footnote_reference'; @@ -62,6 +64,12 @@ export const emitEditorEvent = ({ tiptapEditor, event, params = {} }) => { return nextTick(); }; +export const createTransactionWithMeta = (metaKey, metaValue) => { + return { + getMeta: (key) => (key === metaKey ? metaValue : null), + }; +}; + /** * Creates an instance of the Tiptap Editor class * with a minimal configuration for testing purposes. @@ -204,6 +212,24 @@ export const waitUntilNextDocTransaction = ({ tiptapEditor, action = () => {} }) }); }; +export const expectDocumentAfterTransaction = ({ tiptapEditor, number, expectedDoc, action }) => { + return new Promise((resolve) => { + let counter = 0; + const handleTransaction = async () => { + counter += 1; + if (counter === number) { + expect(tiptapEditor.state.doc.toJSON()).toEqual(expectedDoc.toJSON()); + tiptapEditor.off('update', handleTransaction); + await waitForPromises(); + resolve(); + } + }; + + tiptapEditor.on('update', handleTransaction); + action(); + }); +}; + export const createTiptapEditor = (extensions = []) => createTestEditor({ extensions: [ @@ -218,6 +244,7 @@ export const createTiptapEditor = (extensions = []) => DescriptionList, Details, DetailsContent, + DrawioDiagram, Diagram, Emoji, FootnoteDefinition, |