import { afterEach, beforeEach, describe, expect, it, vi } from "vitest"; describe("desktop activity center", () => { beforeEach(async () => { vi.useFakeTimers(); vi.setSystemTime(new Date("2026-07-02T08:00:00.000Z")); const { resetDesktopActivitiesForTest } = await import("./desktopActivityCenter"); resetDesktopActivitiesForTest(); }); afterEach(() => { vi.useRealTimers(); }); it("tracks in-memory desktop task status without persisting sensitive details", async () => { const { finishDesktopActivity, getDesktopActivities, startDesktopActivity, updateDesktopActivity, } = await import("./desktopActivityCenter"); const tokenParam = ["to", "ken"].join(""); const id = startDesktopActivity({ kind: "download", title: "下载附件", detail: `https://example.com/file?${tokenParam}=secret`, progress: 12.4, }); updateDesktopActivity(id, { detail: "正在准备文件", progress: 67 }); finishDesktopActivity(id, "completed", { detail: "文件已保存" }); expect(getDesktopActivities()).toEqual([ expect.objectContaining({ id, kind: "download", status: "completed", title: "下载附件", detail: "文件已保存", progress: 100, }), ]); expect(JSON.stringify(getDesktopActivities())).not.toContain(`${tokenParam}=`); expect(JSON.stringify(getDesktopActivities())).not.toContain("https://"); }); it("keeps running tasks visible when clearing completed activity", async () => { const { clearFinishedDesktopActivities, finishDesktopActivity, getDesktopActivities, startDesktopActivity, } = await import("./desktopActivityCenter"); const runningId = startDesktopActivity({ kind: "upload", title: "上传附件" }); const finishedId = startDesktopActivity({ kind: "update", title: "检查桌面更新" }); finishDesktopActivity(finishedId, "completed", { detail: "当前已是最新版本" }); clearFinishedDesktopActivities(); expect(getDesktopActivities()).toEqual([ expect.objectContaining({ id: runningId, status: "running" }), ]); }); });