diff options
Diffstat (limited to 'spec/frontend/content_editor/extensions/blockquote_spec.js')
-rw-r--r-- | spec/frontend/content_editor/extensions/blockquote_spec.js | 46 |
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()); }); }); |