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/blockquote_spec.js')
-rw-r--r--spec/frontend/content_editor/extensions/blockquote_spec.js46
1 files changed, 32 insertions, 14 deletions
diff --git a/spec/frontend/content_editor/extensions/blockquote_spec.js b/spec/frontend/content_editor/extensions/blockquote_spec.js
index c5b5044352d..1644647ba69 100644
--- a/spec/frontend/content_editor/extensions/blockquote_spec.js
+++ b/spec/frontend/content_editor/extensions/blockquote_spec.js
@@ -1,19 +1,37 @@
-import { multilineInputRegex } from '~/content_editor/extensions/blockquote';
+import Blockquote from '~/content_editor/extensions/blockquote';
+import { createTestEditor, createDocBuilder, triggerNodeInputRule } from '../test_utils';
describe('content_editor/extensions/blockquote', () => {
- describe.each`
- input | matches
- ${'>>> '} | ${true}
- ${' >>> '} | ${true}
- ${'\t>>> '} | ${true}
- ${'>> '} | ${false}
- ${'>>>x '} | ${false}
- ${'> '} | ${false}
- `('multilineInputRegex', ({ input, matches }) => {
- it(`${matches ? 'matches' : 'does not match'}: "${input}"`, () => {
- const match = new RegExp(multilineInputRegex).test(input);
+ let tiptapEditor;
+ let doc;
+ let p;
+ let blockquote;
- expect(match).toBe(matches);
- });
+ beforeEach(() => {
+ tiptapEditor = createTestEditor({ extensions: [Blockquote] });
+
+ ({
+ builders: { doc, p, blockquote },
+ } = createDocBuilder({
+ tiptapEditor,
+ names: {
+ blockquote: { nodeType: Blockquote.name },
+ },
+ }));
+ });
+
+ it.each`
+ input | insertedNode
+ ${'>>> '} | ${() => blockquote({ multiline: true }, p())}
+ ${'> '} | ${() => blockquote(p())}
+ ${' >>> '} | ${() => blockquote({ multiline: true }, p())}
+ ${'>> '} | ${() => p()}
+ ${'>>>x '} | ${() => p()}
+ `('with input=$input, then should insert a $insertedNode', ({ input, insertedNode }) => {
+ const expectedDoc = doc(insertedNode());
+
+ triggerNodeInputRule({ tiptapEditor, inputRuleText: input });
+
+ expect(tiptapEditor.getJSON()).toEqual(expectedDoc.toJSON());
});
});