feat(FN-4743): complete Step 4 — add mail retention setting UI

Fusion-Task-Id: FN-4743
Fusion-Task-Lineage: 50d1d8e4-66d5-4299-843b-28072a904277
This commit is contained in:
Fusion (runfusion.ai)
2026-05-16 10:27:38 -07:00
committed by gsxdsm
parent 96be8d4cd7
commit 8a521a565d
2 changed files with 49 additions and 0 deletions

View File

@@ -904,6 +904,36 @@ describe("SettingsModal", () => {
expect(payload.chatAutoCleanupDays).toBe(14);
});
it("renders and saves mail auto-prune retention", async () => {
renderModal({ initialSection: "general" });
await waitForSettingsModalReady();
const mailCleanupSelect = screen.getByLabelText("Auto-prune old mail") as HTMLSelectElement;
expect(mailCleanupSelect.value).toBe("0");
await userEvent.selectOptions(mailCleanupSelect, "7");
await userEvent.click(screen.getByRole("button", { name: "Save" }));
await waitFor(() => {
expect(mockUpdateSettings).toHaveBeenCalled();
});
const payload = mockUpdateSettings.mock.calls[0][0] as Record<string, unknown>;
expect(payload.mailAutoCleanupDays).toBe(7);
mockUpdateSettings.mockClear();
await userEvent.selectOptions(mailCleanupSelect, "0");
await userEvent.click(screen.getByRole("button", { name: "Save" }));
await waitFor(() => {
expect(mockUpdateSettings).toHaveBeenCalled();
});
const offPayload = mockUpdateSettings.mock.calls[0][0] as Record<string, unknown>;
expect(offPayload.mailAutoCleanupDays).toBe(0);
});
it("renders and saves chat room compaction controls", async () => {
renderModal({ initialSection: "general" });
await waitForSettingsModalReady();