const { DEFAULT_MODULE_VISIBILITY, buildDefaultWorkspaceSetting, normalizeModuleVisibilityJson, } = require("../../src/services/workspaceSettings"); describe("workspace small-team navigation defaults", () => { it("keeps only the R66 daily path in default main navigation", () => { const mainModules = Object.entries(DEFAULT_MODULE_VISIBILITY) .filter(([, placement]) => placement === "main") .map(([key]) => key); expect(mainModules).toEqual([ "portal", "team", "leaveRequests", "reimbursements", "assets", "weeklyReports", "todos", "announcements", "projects", ]); expect(DEFAULT_MODULE_VISIBILITY.attendance).toBe("hidden"); }); it("normalizes unknown or invalid module visibility back to the R66 defaults", () => { const normalized = normalizeModuleVisibilityJson({ attendance: "main", purchaseRequests: "hidden", unknownModule: "main", budgets: "invalid", }); expect(normalized.attendance).toBe("main"); expect(normalized.purchaseRequests).toBe("hidden"); expect(normalized.budgets).toBe(DEFAULT_MODULE_VISIBILITY.budgets); expect(normalized.unknownModule).toBeUndefined(); }); it("builds a small-team internal workspace by default", () => { const workspace = buildDefaultWorkspaceSetting(); expect(workspace.profile).toBe("small_team_internal"); expect(workspace.moduleVisibility.attendance).toBe("hidden"); }); });