Some checks failed
build-packages / resolve bundled mosh-client (push) Has been cancelled
build-packages / resolve bundled et-client (push) Has been cancelled
build-packages / build-macos (push) Has been cancelled
build-packages / build-windows (push) Has been cancelled
build-packages / build-linux-x64 (push) Has been cancelled
build-packages / build-linux-arm64 (push) Has been cancelled
build-packages / release (push) Has been cancelled
build-packages / update Nix release metadata (push) Has been cancelled
build-packages / bump homebrew tap (push) Has been cancelled
test / lint-and-test (push) Has been cancelled
AI automation / Route event (push) Has been cancelled
AI automation / Hand reopened issue to maintainers (push) Has been cancelled
AI automation / Clean source issue state (push) Has been cancelled
AI automation / Reconcile handoffs (push) Has been cancelled
AI automation / Classify issue (push) Has been cancelled
AI automation / Claude Code smoke (push) Has been cancelled
AI automation / Review issue follow-up (push) Has been cancelled
AI automation / Publish issue follow-up (push) Has been cancelled
AI automation / Implement with Claude Code (push) Has been cancelled
AI automation / Publish implement PR (push) Has been cancelled
AI automation / Continue queued issue comments (push) Has been cancelled
AI automation / Codex review loop (push) Has been cancelled
AI automation / Publish Codex fix (push) Has been cancelled
AI automation / Clear Codex dispatch marker (push) Has been cancelled
AI automation / Own PR re-request Codex (push) Has been cancelled
AI automation / External PR re-request Codex (push) Has been cancelled
AI automation / Poll Codex reaction / retry (push) Has been cancelled
build-et-binaries / build-linux-x64 (push) Has been cancelled
build-et-binaries / build-linux-arm64 (push) Has been cancelled
build-et-binaries / build-macos-universal (push) Has been cancelled
build-et-binaries / build-windows-x64 (push) Has been cancelled
build-et-binaries / release (push) Has been cancelled
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']);
|
|
});
|