import { describe, expect, it } from 'vitest' import { keyboard } from 'vitest-browser-commands/playwright' import { setupTest } from '../testing/index.ts' import { inputText } from '../testing/keyboard.ts' describe('defineHardBreakKeymap', () => { it('should insert hard break', async () => { const { editor, n } = setupTest() const doc1 = n.doc(n.p('foobar')) const doc2 = n.doc(n.p('foo', n.hardBreak(), 'bar')) editor.set(doc1) expect(editor.state.doc.toJSON()).toEqual(doc1.toJSON()) await keyboard.press('Shift+Enter') expect(editor.state.doc.toJSON()).toEqual(doc2.toJSON()) editor.set(doc1) expect(editor.state.doc.toJSON()).toEqual(doc1.toJSON()) await keyboard.press('ControlOrMeta+Enter') expect(editor.state.doc.toJSON()).toEqual(doc2.toJSON()) }) it('can continue to type after a hard break', async () => { const { editor, n } = setupTest() const doc1 = n.doc(n.p('foobar')) const doc2 = n.doc(n.p('foo', n.hardBreak(), 'bar')) const doc3 = n.doc(n.p('foo', n.hardBreak(), 'bazbar')) editor.set(doc1) expect(editor.state.doc.toJSON()).toEqual(doc1.toJSON()) await keyboard.press('Shift+Enter') expect(editor.state.doc.toJSON()).toEqual(doc2.toJSON()) await inputText('baz') expect(editor.state.doc.toJSON()).toEqual(doc3.toJSON()) }) })