import { describe, it, expect } from "vitest"; import { CacheKeys } from "../../src/shared/cache/cache-key.builder.js"; describe("CacheKeys", () => { describe("dashboard", () => { it("应该为 dashboard 构建正确的 key", () => { expect(CacheKeys.dashboard("parent-001")).toBe("dashboard:parent-001"); }); }); describe("children", () => { it("应该为 children 构建正确的 key", () => { expect(CacheKeys.children("parent-001")).toBe("children:parent-001"); }); }); describe("grades", () => { it("应该为 grades 构建带分页的 key", () => { expect(CacheKeys.grades("student-001", 1)).toBe("grades:student-001:1"); expect(CacheKeys.grades("student-002", 3)).toBe("grades:student-002:3"); }); }); describe("homework", () => { it("应该为 homework 构建带 classId 的 key", () => { expect(CacheKeys.homework("student-001", "class-001")).toBe( "homework:student-001:class-001", ); }); }); describe("exams", () => { it("应该为 exams 构建带 classId 的 key", () => { expect(CacheKeys.exams("student-001", "class-001")).toBe( "exams:student-001:class-001", ); }); }); describe("weakness", () => { it("应该为 weakness 构建正确的 key", () => { expect(CacheKeys.weakness("student-001")).toBe( "analytics:weakness:student-001", ); }); }); describe("trend", () => { it("应该为 trend 构建带 range 的 key", () => { expect(CacheKeys.trend("student-001", "7d")).toBe( "analytics:trend:student-001:7d", ); }); }); describe("notifications", () => { it("应该为 notifications 构建带分页的 key", () => { expect(CacheKeys.notifications("parent-001", 1)).toBe( "notifications:parent-001:1", ); }); }); describe("notificationPrefs", () => { it("应该为 notificationPrefs 构建正确的 key", () => { expect(CacheKeys.notificationPrefs("parent-001")).toBe( "notification-prefs:parent-001", ); }); }); describe("childBindings", () => { it("应该为 childBindings 构建正确的 key", () => { expect(CacheKeys.childBindings("parent-001")).toBe( "child-bindings:parent-001", ); }); }); it("不同 parentId 应该产生不同 key", () => { expect(CacheKeys.dashboard("parent-001")).not.toBe( CacheKeys.dashboard("parent-002"), ); }); });