This commit is contained in:
2026-08-17 10:43:38 +02:00
parent e126182ae6
commit 3a941480a9
20 changed files with 430 additions and 46 deletions

View File

@@ -55,3 +55,45 @@ describe('Editor view modes', () => {
await waitFor(() => expect(c.querySelector('.split-overlay')).toBeNull())
})
})
// Default config wraps Markdown only (editor.wordWrap: 'markdown'). A wrapped
// buffer drops the fixed gutter column for one block per line, so the folded
// rows carry no number.
describe('Word wrap', () => {
async function openTree(c: HTMLElement, name: string): Promise<void> {
const row = await waitFor(() => {
const r = Array.from(c.querySelectorAll<HTMLElement>('.tree-row')).find((el) => el.textContent?.includes(name))
if (!r) throw new Error(`${name} not ready`)
return r
})
fireEvent.click(row)
}
it('folds long lines in Markdown, one numbered block per source line', async () => {
const c = render(<ProjectProvider><App /></ProjectProvider>).container
await openTree(c, 'README.md')
const edit = await waitFor(() => {
const el = c.querySelector<HTMLElement>('.code-edit')
if (!el) throw new Error('editor not ready')
return el
})
expect(edit.classList.contains('wrap')).toBe(true)
expect(edit.querySelector('.ce-gutter')).toBeNull()
const ta = edit.querySelector<HTMLTextAreaElement>('.ce-ta')!
expect(ta.getAttribute('wrap')).toBe('soft')
expect(edit.querySelectorAll('.ce-line').length).toBe(ta.value.split('\n').length)
})
it('leaves other file types on the scrolling gutter layout', async () => {
const c = render(<ProjectProvider><App /></ProjectProvider>).container
await openTree(c, 'composer.json')
const edit = await waitFor(() => {
const el = c.querySelector<HTMLElement>('.code-edit')
if (!el) throw new Error('editor not ready')
return el
})
expect(edit.classList.contains('wrap')).toBe(false)
expect(edit.querySelector('.ce-gutter')).toBeTruthy()
expect(edit.querySelector('.ce-line')).toBeNull()
})
})