슬래시 명령 커서 복원 계산 분리

This commit is contained in:
2026-07-27 11:22:51 +09:00
parent 736f7d24ec
commit 675c45092b
7 changed files with 77 additions and 9 deletions

View File

@@ -2,6 +2,7 @@ import assert from 'node:assert/strict'
import test from 'node:test'
import {
getSlashCommandFocusTarget,
getSlashCommandTextareaSelection,
insertMarkdownLinesAtSlashTarget,
isMediaSlashAction,
parseSlashInput,
@@ -71,3 +72,40 @@ test('슬래시 명령 포커스 대상은 단일 줄과 블록 삽입을 구분
offset: 0
})
})
test('슬래시 명령 textarea 선택 위치는 줄 시작과 포커스 오프셋을 합산한다', () => {
const markdown = [
'첫 줄',
'둘째 줄',
'## ',
'마지막 줄'
].join('\n')
assert.deepEqual(getSlashCommandTextareaSelection({
markdown,
startLine: 2,
lines: ['## ']
}), {
start: 12,
end: 12
})
})
test('슬래시 명령 textarea 선택 위치는 여러 줄 블록의 내부 빈 줄을 가리킨다', () => {
const markdown = [
'첫 줄',
'```',
'',
'```',
'마지막 줄'
].join('\n')
assert.deepEqual(getSlashCommandTextareaSelection({
markdown,
startLine: 1,
lines: ['```', '', '```']
}), {
start: 8,
end: 8
})
})