mirror of
https://github.com/fluxerapp/fluxer
synced 2026-10-18 21:45:31 +09:00
fix(app): insert a newline on Enter inside code blocks (#2674)
This commit is contained in:
1 parent
2830221949
commit
a5af857564
9 files changed
+1052
-50
No files matched your search
@@ -0,0 +1,44 @@
|
||||
// SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
import {registerComposerCodeIndent} from '@app/features/lexical/composer/ComposerCodeIndent';
|
||||
import {
|
||||
$getComposerDisplayText,
|
||||
$replaceComposerRange,
|
||||
$selectComposerRange,
|
||||
} from '@app/features/lexical/composer/composerOffsets';
|
||||
import {ComposerMentionNode} from '@app/features/lexical/composer/nodes/ComposerMentionNode';
|
||||
import {createEditor, KEY_TAB_COMMAND} from 'lexical';
|
||||
import {describe, expect, it, vi} from 'vitest';
|
||||
|
||||
vi.mock('@app/features/lexical/composer/nodes/ComposerMentionPill', () => ({ComposerMentionPill: () => null}));
|
||||
vi.mock('@app/features/lexical/composer/nodes/ComposerCustomEmoji', () => ({ComposerCustomEmoji: () => null}));
|
||||
vi.mock('@app/features/lexical/composer/nodes/ComposerStandardEmoji', () => ({ComposerStandardEmoji: () => null}));
|
||||
|
||||
describe('registerComposerCodeIndent', () => {
|
||||
it('indents a block opened after a mention whose name holds a backtick', () => {
|
||||
const editor = createEditor({
|
||||
namespace: 'composer-code-indent-test',
|
||||
nodes: [ComposerMentionNode],
|
||||
onError: (error) => {
|
||||
throw error;
|
||||
},
|
||||
});
|
||||
registerComposerCodeIndent(editor, {current: false});
|
||||
editor.update(
|
||||
() => {
|
||||
$replaceComposerRange(
|
||||
0,
|
||||
0,
|
||||
{kind: 'mention', mentionType: 'user', id: '1', display: '@`bob', wire: '<@1>'},
|
||||
{trailing: false},
|
||||
);
|
||||
$replaceComposerRange(5, 5, {kind: 'text', text: ' hi ```js\ncode'}, {leading: false, trailing: false});
|
||||
$selectComposerRange(19, 19);
|
||||
},
|
||||
{discrete: true},
|
||||
);
|
||||
const event = Object.assign(new Event('keydown', {cancelable: true}), {shiftKey: false}) as KeyboardEvent;
|
||||
expect(editor.dispatchCommand(KEY_TAB_COMMAND, event)).toBe(true);
|
||||
expect(editor.read(() => $getComposerDisplayText())).toBe('@`bob hi ```js\ncode\t');
|
||||
});
|
||||
});
|
||||
Reference in new issue
Block a user