文件
hyb-oa/server/tests/unit/workspaceSettings.navigation.test.js
T

48 行
1.5 KiB
JavaScript

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");
});
});