feat(FN-4780): complete Step 5 — clear SWR caches on version update

Fusion-Task-Id: FN-4780
Fusion-Task-Lineage: 7f052539-9d15-4997-8135-21434f065d4a
This commit is contained in:
Fusion (runfusion.ai)
2026-05-16 12:58:47 -07:00
committed by gsxdsm
parent 508ab73486
commit f3901808ed
2 changed files with 28 additions and 1 deletions

View File

@@ -1,6 +1,7 @@
import { Loader2 } from "lucide-react";
import { useState } from "react";
import { consumeVersionUpdateFlag } from "../versionCheck";
import { SWR_CACHE_KEYS, clearCache } from "../utils/swrCache";
import "./DashboardLoader.css";
export type DashboardLoaderStage = "projects" | "project" | "tasks" | "ready";
@@ -40,7 +41,15 @@ function getStepState(stepId: LoaderStep["id"], stage: DashboardLoaderStage): "d
}
export function DashboardLoader({ stage }: DashboardLoaderProps) {
const [isVersionUpdate] = useState(() => consumeVersionUpdateFlag());
const [isVersionUpdate] = useState(() => {
const versionUpdated = consumeVersionUpdateFlag();
if (versionUpdated) {
clearCache(SWR_CACHE_KEYS.TASKS_PREFIX);
clearCache(SWR_CACHE_KEYS.PROJECTS);
clearCache(SWR_CACHE_KEYS.CURRENT_PROJECT_ID);
}
return versionUpdated;
});
return (
<div

View File

@@ -8,6 +8,24 @@ vi.mock("../../versionCheck", () => ({
}));
import { DashboardLoader } from "../DashboardLoader";
import { SWR_CACHE_KEYS, clearCache } from "../../utils/swrCache";
vi.mock("../../versionCheck", () => ({
consumeVersionUpdateFlag: vi.fn(() => false),
}));
vi.mock("../../utils/swrCache", async (importOriginal) => {
const actual = await importOriginal<typeof import("../../utils/swrCache")>();
return {
...actual,
clearCache: vi.fn(),
};
});
import { consumeVersionUpdateFlag } from "../../versionCheck";
const mockConsumeVersionUpdateFlag = vi.mocked(consumeVersionUpdateFlag);
const mockClearCache = vi.mocked(clearCache);
function getStep(label: string): HTMLElement {
const step = screen.getByText(label).closest("li");