返回 DeepSeek-Reasonix
interaction-draft-store.test.ts
根目录 / desktop / frontend / src / __tests__ / interaction-draft-store.test.ts
1 import assert from "node:assert/strict";
2 import { createInteractionDraftStore } from "../lib/interactionDraftStore";
3
4 const store = createInteractionDraftStore<number>(2);
5 store.write("session-a\u0000ask-1", 1);
6 store.write("session-a\u0000ask-2", 2);
7 assert.equal(store.read("session-a\u0000ask-1"), 1);
8 store.write("session-b\u0000ask-1", 3);
9 assert.equal(store.read("session-a\u0000ask-2"), undefined, "least-recent request is evicted at the bound");
10 assert.equal(store.read("session-a\u0000ask-1"), 1, "same request survives component remount");
11 assert.equal(store.read("session-b\u0000ask-1"), 3, "reused prompt ids remain scoped by session");
12 store.releaseScope("session-a");
13 assert.equal(store.read("session-a\u0000ask-1"), undefined, "session release removes only its drafts");
14 assert.equal(store.read("session-b\u0000ask-1"), 3);
15 console.log("interaction draft store: bounded request identity and session release passed");
16
16 lines TYPESCRIPT