65 lines
2.2 KiB
TypeScript
65 lines
2.2 KiB
TypeScript
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" }),
|
|
]);
|
|
});
|
|
});
|