import { readFileSync } from "node:fs"; import { join } from "node:path"; import { describe, expect, it } from "vitest"; const source = readFileSync( join(process.cwd(), "src/views/dashboards/superUserDashboard/department/modules/DepartmentModulesSetup.vue"), "utf8" ); describe("DepartmentModulesSetup self-serve management regression", () => { it("loads and updates department self-serve status through shared helpers", () => { expect(source).toContain("getDepartmentSelfServeStatus"); expect(source).toContain("setDepartmentSelfServeStatus"); expect(source).toContain("loadSelfServeEnabled()"); expect(source).toContain("updateSelfServeEnabled"); }); it("renders a dedicated self-serve module switch in setup UI", () => { expect(source).toContain('title="Selvvask"'); expect(source).toContain(':title="selfServeAutoDeactivationText"'); expect(source).toContain(':description="selfServeAutoDeactivationText"'); expect(source).toContain("NEVER"); }); it("refetches scheduling metadata for legacy message-only update responses", () => { expect(source).toContain("if (status.hasAutoDeactivation)"); expect(source).toContain("preserveEnabledOnError: true"); expect(source).toContain("requestedDepartmentId"); expect(source).toContain("if (!preserveEnabledOnError)"); }); it("reloads self-serve status safely when the route department changes", () => { expect(source).toContain("watch("); expect(source).toContain("router.currentRoute.value.params.departmentId"); expect(source).toContain("selfServeStatusRequestSequence"); expect(source).toContain("requestSequence !== selfServeStatusRequestSequence"); expect(source).toContain("{ immediate: true }"); }); it("invalidates an in-flight save when the route department changes", () => { expect(source).toContain("selfServeSaveRequestSequence"); expect(source).toContain("const requestSequence = ++selfServeSaveRequestSequence"); expect(source).toContain("requestSequence !== selfServeSaveRequestSequence"); expect(source).toContain("selfServeSaveRequestSequence++"); expect(source).toContain("isSavingSelfServeEnabled.value = false"); }); it("ignores department-variable responses from a previously selected route department", () => { expect(source).toContain("departmentVariablesRequestSequence"); expect(source).toContain("const requestSequence = ++departmentVariablesRequestSequence"); expect(source).toContain("requestSequence !== departmentVariablesRequestSequence"); expect(source).toContain("String(departmentId.value) !== requestedDepartmentId"); expect(source).toContain("getDepartmentVariables(String(nextDepartmentId))"); }); });