Files
NetMesh/application/state/terminalSidePanelWidth.test.ts

37 lines
1.6 KiB
TypeScript
Raw Permalink Normal View History

import assert from 'node:assert/strict';
import test from 'node:test';
import {
clampTerminalSidePanelWidth,
getTerminalSidePanelAvailableWidth,
getTerminalSidePanelMaxShownTools,
getTerminalSidePanelMaxWidth,
TERMINAL_SIDE_PANEL_MAX_WIDTH,
TERMINAL_SIDE_PANEL_MIN_WIDTH,
} from './terminalSidePanelWidth.ts';
test('terminal side panel can expand to the wider maximum', () => {
assert.equal(getTerminalSidePanelMaxWidth(2000), TERMINAL_SIDE_PANEL_MAX_WIDTH);
assert.equal(clampTerminalSidePanelWidth(1400, 2000), TERMINAL_SIDE_PANEL_MAX_WIDTH);
});
test('terminal side panel collapses tool buttons before shared actions are clipped', () => {
assert.equal(getTerminalSidePanelMaxShownTools(280), 2);
assert.equal(getTerminalSidePanelMaxShownTools(320), 4);
assert.ok(getTerminalSidePanelMaxShownTools(420) >= 7);
});
test('terminal side panel uses the actual surface left after fixed sibling panels', () => {
assert.equal(getTerminalSidePanelAvailableWidth(780, 220), 560);
assert.equal(getTerminalSidePanelMaxWidth(560), TERMINAL_SIDE_PANEL_MIN_WIDTH);
assert.equal(clampTerminalSidePanelWidth(680, 560), TERMINAL_SIDE_PANEL_MIN_WIDTH);
});
test('terminal side panel keeps usable terminal space in smaller windows', () => {
assert.equal(getTerminalSidePanelMaxWidth(1000), 680);
assert.equal(clampTerminalSidePanelWidth(900, 1000), 680);
assert.equal(clampTerminalSidePanelWidth(100, 1000), TERMINAL_SIDE_PANEL_MIN_WIDTH);
assert.equal(clampTerminalSidePanelWidth(280, 1000, 401), 401);
assert.equal(clampTerminalSidePanelWidth(280, 600, 401), TERMINAL_SIDE_PANEL_MIN_WIDTH);
});