mirror of
https://github.com/binaricat/Netcatty.git
synced 2026-09-24 15:49:09 +00:00
fcd122d4a1
Prevent StrictMode draft demotion after send, keep workspace AI maintenance mounted with a workspaces list, and keep live Streamdown markdown while streaming. System Manager gains overflow-aware icon-only tabs, customize layout, GPU vendor badges, and cache-preserving overview remounts. Settings search scrolls only the content pane so traffic lights stay put.
55 lines
1.6 KiB
TypeScript
55 lines
1.6 KiB
TypeScript
import assert from 'node:assert/strict';
|
|
import test from 'node:test';
|
|
|
|
import {
|
|
normalizeToolbarItemLayout,
|
|
partitionToolbarItems,
|
|
setToolbarItemPlacement,
|
|
} from '../../domain/toolbarItemLayout.ts';
|
|
import {
|
|
SYSTEM_MANAGER_TAB_DEFAULT_ORDER,
|
|
SYSTEM_MANAGER_TAB_LAYOUT_DEFAULTS,
|
|
} from './systemManagerTabLayout.ts';
|
|
|
|
test('system manager tab layout defaults include every known section', () => {
|
|
assert.deepEqual(
|
|
[...SYSTEM_MANAGER_TAB_DEFAULT_ORDER],
|
|
['overview', 'processes', 'ports', 'services', 'tmux', 'docker', 'gpu'],
|
|
);
|
|
assert.deepEqual(SYSTEM_MANAGER_TAB_LAYOUT_DEFAULTS.lockedIds, ['overview']);
|
|
});
|
|
|
|
test('system manager overview cannot be hidden', () => {
|
|
const layout = normalizeToolbarItemLayout(null, SYSTEM_MANAGER_TAB_LAYOUT_DEFAULTS);
|
|
const next = setToolbarItemPlacement(
|
|
layout,
|
|
'overview',
|
|
'hide',
|
|
SYSTEM_MANAGER_TAB_LAYOUT_DEFAULTS,
|
|
);
|
|
assert.equal(next.placement.overview, 'show');
|
|
});
|
|
|
|
test('system manager partition filters to available host tabs', () => {
|
|
const layout = normalizeToolbarItemLayout(
|
|
{
|
|
order: [...SYSTEM_MANAGER_TAB_DEFAULT_ORDER],
|
|
placement: {
|
|
overview: 'show',
|
|
processes: 'show',
|
|
ports: 'collapse',
|
|
services: 'hide',
|
|
tmux: 'show',
|
|
docker: 'show',
|
|
gpu: 'show',
|
|
},
|
|
},
|
|
SYSTEM_MANAGER_TAB_LAYOUT_DEFAULTS,
|
|
);
|
|
|
|
const part = partitionToolbarItems(layout, ['overview', 'processes', 'ports', 'services']);
|
|
assert.deepEqual(part.shown, ['overview', 'processes']);
|
|
assert.deepEqual(part.collapsed, ['ports']);
|
|
assert.deepEqual(part.hidden, ['services']);
|
|
});
|