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']);
|
||
|
|
});
|