diff options
Diffstat (limited to 'spec/frontend/content_editor/extensions/word_break_spec.js')
-rw-r--r-- | spec/frontend/content_editor/extensions/word_break_spec.js | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/spec/frontend/content_editor/extensions/word_break_spec.js b/spec/frontend/content_editor/extensions/word_break_spec.js new file mode 100644 index 00000000000..23167269d7d --- /dev/null +++ b/spec/frontend/content_editor/extensions/word_break_spec.js @@ -0,0 +1,35 @@ +import WordBreak from '~/content_editor/extensions/word_break'; +import { createTestEditor, createDocBuilder, triggerNodeInputRule } from '../test_utils'; + +describe('content_editor/extensions/word_break', () => { + let tiptapEditor; + let doc; + let p; + let wordBreak; + + beforeEach(() => { + tiptapEditor = createTestEditor({ extensions: [WordBreak] }); + + ({ + builders: { doc, p, wordBreak }, + } = createDocBuilder({ + tiptapEditor, + names: { + wordBreak: { nodeType: WordBreak.name }, + }, + })); + }); + + it.each` + input | insertedNode + ${'<wbr>'} | ${() => p(wordBreak())} + ${'<wbr'} | ${() => p()} + ${'wbr>'} | ${() => 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()); + }); +}); |