| 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 |