Files
multica/packages/core/client-usage/install-id.test.ts
Multica Eve 216aee5629 [MUL-5125] Add daily Desktop/Web usage and runtime reporting (#5763)
* feat(analytics): add daily client usage reporting (MUL-5125)

Co-authored-by: multica-agent <github@multica.ai>

* fix(analytics): clarify daily usage semantics (MUL-5125)

Co-authored-by: multica-agent <github@multica.ai>

* fix(analytics): resolve usage review blockers (MUL-5125)

Co-authored-by: multica-agent <github@multica.ai>

---------

Co-authored-by: Eve <eve@multica-ai.local>
Co-authored-by: multica-agent <github@multica.ai>
2026-07-22 16:52:34 +08:00

29 lines
1.0 KiB
TypeScript

import { describe, expect, it } from "vitest";
import type { StorageAdapter } from "../types/storage";
import { getOrCreateInstallId } from "./install-id";
function memoryStorage(): StorageAdapter {
const values = new Map<string, string>();
return {
getItem: (key) => values.get(key) ?? null,
setItem: (key, value) => values.set(key, value),
removeItem: (key) => values.delete(key),
};
}
describe("getOrCreateInstallId", () => {
it("persists one UUID across calls", () => {
const storage = memoryStorage();
const generated = "3d267c82-59a9-46b2-a189-56e1504449a7";
expect(getOrCreateInstallId(storage, () => generated)).toBe(generated);
expect(getOrCreateInstallId(storage, () => "unused")).toBe(generated);
});
it("replaces corrupted persisted values", () => {
const storage = memoryStorage();
storage.setItem("multica_install_id", "broken");
const generated = "c9c7a898-ee7c-44a0-bd0c-66a16461e591";
expect(getOrCreateInstallId(storage, () => generated)).toBe(generated);
});
});