orca/src/shared/markdown-toc-panel-width.te...

29 lines
1.1 KiB
TypeScript

import { describe, expect, it } from 'vitest'
import {
MARKDOWN_TOC_PANEL_DEFAULT_WIDTH,
MARKDOWN_TOC_PANEL_MAX_WIDTH,
MARKDOWN_TOC_PANEL_MIN_WIDTH,
clampMarkdownTocPanelWidth,
computeMaxMarkdownTocPanelWidth
} from './markdown-toc-panel-width'
describe('markdown toc panel width', () => {
it('clamps widths into the supported range', () => {
expect(clampMarkdownTocPanelWidth(undefined)).toBe(MARKDOWN_TOC_PANEL_DEFAULT_WIDTH)
expect(clampMarkdownTocPanelWidth(100)).toBe(MARKDOWN_TOC_PANEL_MIN_WIDTH)
expect(clampMarkdownTocPanelWidth(900)).toBe(MARKDOWN_TOC_PANEL_MAX_WIDTH)
})
it('respects the remaining editor width when a container size is known', () => {
expect(computeMaxMarkdownTocPanelWidth(700)).toBe(380)
expect(clampMarkdownTocPanelWidth(500, 700)).toBe(380)
expect(clampMarkdownTocPanelWidth(350, 700)).toBe(350)
})
it('treats the second argument as container width, not a precomputed max', () => {
const maxFor700 = computeMaxMarkdownTocPanelWidth(700)
expect(clampMarkdownTocPanelWidth(350, maxFor700)).toBe(200)
expect(clampMarkdownTocPanelWidth(350, 700)).toBe(350)
})
})