Files
Netcatty/components/ai/aiPanelDiagnostics.test.ts
T
bincxz 037b85bd66 fix(ui): smooth work-tab chrome transitions and split-pane autocomplete
Replace immersive instant-switch with animated active chrome theme sync so
top tabs match terminal sessions immediately on tab click, and clamp
autocomplete popups to the active pane so they stay anchored to the cursor
in split workspaces.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-10 01:10:33 +08:00

64 lines
2.3 KiB
TypeScript

import assert from 'node:assert/strict';
import test from 'node:test';
const storage = new Map<string, string>();
Object.defineProperty(globalThis, 'window', {
configurable: true,
value: {
localStorage: {
getItem: (key: string) => storage.get(key) ?? null,
setItem: (key: string, value: string) => storage.set(key, value),
removeItem: (key: string) => storage.delete(key),
},
},
});
const {
AI_PANEL_FORCE_HIDE_ALL_CONTENT,
AI_PANEL_FORCE_HIDE_SHELL,
AI_PANEL_DIAGNOSTIC_HIDE_KEY,
AI_PANEL_DIAGNOSTIC_PROFILE_KEY,
getAIPanelDiagnosticHiddenParts,
isAIPanelDiagnosticPartHidden,
isAIPanelDiagnosticsProfilingEnabled,
} = await import('./aiPanelDiagnostics.ts');
test('AI panel diagnostics does not hide content by default', () => {
window.localStorage.removeItem(AI_PANEL_DIAGNOSTIC_HIDE_KEY);
assert.equal(AI_PANEL_FORCE_HIDE_ALL_CONTENT, false);
assert.equal(isAIPanelDiagnosticPartHidden('header'), false);
assert.equal(isAIPanelDiagnosticPartHidden('input'), false);
});
test('AI panel diagnostics does not hide the side panel shell by default', () => {
assert.equal(AI_PANEL_FORCE_HIDE_SHELL, false);
});
test('AI panel diagnostics parses hidden parts from local storage', () => {
window.localStorage.setItem(AI_PANEL_DIAGNOSTIC_HIDE_KEY, ' messages, input ,markdown ');
const hiddenParts = getAIPanelDiagnosticHiddenParts();
assert.equal(hiddenParts.has('messages'), true);
assert.equal(hiddenParts.has('input'), true);
assert.equal(hiddenParts.has('markdown'), true);
assert.equal(isAIPanelDiagnosticPartHidden('messages', hiddenParts), true);
assert.equal(isAIPanelDiagnosticPartHidden('toolcalls', hiddenParts), false);
});
test('AI panel diagnostics supports hiding everything at once', () => {
window.localStorage.setItem(AI_PANEL_DIAGNOSTIC_HIDE_KEY, 'all');
const hiddenParts = getAIPanelDiagnosticHiddenParts();
assert.equal(isAIPanelDiagnosticPartHidden('header', hiddenParts), true);
assert.equal(isAIPanelDiagnosticPartHidden('input', hiddenParts), true);
});
test('AI panel profiling accepts common enabled values', () => {
window.localStorage.setItem(AI_PANEL_DIAGNOSTIC_PROFILE_KEY, 'on');
assert.equal(isAIPanelDiagnosticsProfilingEnabled(), true);
window.localStorage.setItem(AI_PANEL_DIAGNOSTIC_PROFILE_KEY, '0');
assert.equal(isAIPanelDiagnosticsProfilingEnabled(), false);
});