import assert from "node:assert/strict"; import test from "node:test"; import { handleToolDisplayArgs } from "../src/config-modal.ts"; import { normalizeToolDisplayConfig } from "../src/config-store.ts"; import { detectToolDisplayPreset, getToolDisplayPresetConfig, TOOL_DISPLAY_PRESETS } from "../src/presets.ts"; import { BUILT_IN_TOOL_OVERRIDE_NAMES, DEFAULT_TOOL_DISPLAY_CONFIG, type ToolDisplayConfig, } from "../src/types.ts"; test("powershell is a built-in renderer with a default-on ownership flag", () => { assert.ok(BUILT_IN_TOOL_OVERRIDE_NAMES.includes("powershell")); assert.equal(DEFAULT_TOOL_DISPLAY_CONFIG.registerToolOverrides.powershell, true); const normalized = normalizeToolDisplayConfig({}); assert.equal(normalized.registerToolOverrides.powershell, true); const disabled = normalizeToolDisplayConfig({ registerToolOverrides: { powershell: false }, }); assert.equal(disabled.registerToolOverrides.powershell, false); const enabled = normalizeToolDisplayConfig({ registerToolOverrides: { powershell: true }, }); assert.equal(enabled.registerToolOverrides.powershell, true); }); test("every preset keeps powershell on and stays detectable", () => { for (const preset of TOOL_DISPLAY_PRESETS) { const config = getToolDisplayPresetConfig(preset); assert.equal(config.registerToolOverrides.powershell, true, `${preset} enables powershell`); assert.equal(detectToolDisplayPreset(config), preset, `${preset} round-trips`); } }); test("the /tool-display show summary reports powershell ownership", () => { const notifications: Array<{ message: string; level: string }> = []; const config: ToolDisplayConfig = { ...DEFAULT_TOOL_DISPLAY_CONFIG, registerToolOverrides: { ...DEFAULT_TOOL_DISPLAY_CONFIG.registerToolOverrides, powershell: false, }, }; const handled = handleToolDisplayArgs( "show", { ui: { notify(message: string, level: string): void { notifications.push({ message, level }); }, }, } as never, { getConfig: () => config, setConfig: () => {}, getCapabilities: () => ({ hasMcpTooling: false, hasRtkOptimizer: false }), }, ); assert.equal(handled, true); assert.equal(notifications.length, 1); assert.match(notifications[0]?.message ?? "", /powershell:off/); assert.match(notifications[0]?.message ?? "", /read:on/); });