Files
kandev/apps/web/components/app-sidebar/sections/settings/settings-tree.test.ts
T
2026-06-17 15:26:30 +01:00

35 lines
1.9 KiB
TypeScript

import { describe, it, expect } from "vitest";
import { settingsGroupIdForPath } from "./settings-tree";
describe("settingsGroupIdForPath", () => {
it("maps a group root to its id", () => {
expect(settingsGroupIdForPath("/settings/executors")).toBe("executors");
expect(settingsGroupIdForPath("/settings/agents")).toBe("agents");
expect(settingsGroupIdForPath("/settings/general")).toBe("general");
expect(settingsGroupIdForPath("/settings/integrations")).toBe("integrations");
expect(settingsGroupIdForPath("/settings/system")).toBe("system");
expect(settingsGroupIdForPath("/settings/workspace")).toBe("workspaces");
});
it("maps a nested path to its owning group", () => {
expect(settingsGroupIdForPath("/settings/executors/profile-123")).toBe("executors");
expect(settingsGroupIdForPath("/settings/workspace/ws-1/repositories")).toBe("workspaces");
expect(settingsGroupIdForPath("/settings/system/logs")).toBe("system");
expect(settingsGroupIdForPath("/settings/system/feature-toggles")).toBe("system");
// General subpages stay under /settings/general so they belong to General.
expect(settingsGroupIdForPath("/settings/general/appearance")).toBe("general");
expect(settingsGroupIdForPath("/settings/general/terminal")).toBe("general");
expect(settingsGroupIdForPath("/settings/general/keyboard-shortcuts")).toBe("general");
expect(settingsGroupIdForPath("/settings/general/editors")).toBe("general");
});
it("returns null for standalone leaves with no owning group", () => {
expect(settingsGroupIdForPath("/settings/automations")).toBeNull();
expect(settingsGroupIdForPath("/settings/prompts")).toBeNull();
expect(settingsGroupIdForPath("/settings/voice-mode")).toBeNull();
expect(settingsGroupIdForPath("/settings/utility-agents")).toBeNull();
expect(settingsGroupIdForPath("/settings/external-mcp")).toBeNull();
expect(settingsGroupIdForPath("/settings")).toBeNull();
});
});