summaryrefslogtreecommitdiffhomepage
path: root/src/features/conversation-cache/cache.test.ts
diff options
context:
space:
mode:
authorAdam Malczewski <[email protected]>2026-06-07 02:06:55 +0900
committerAdam Malczewski <[email protected]>2026-06-07 02:06:55 +0900
commit529c6a2bb56447fe93796111df3d4cc5a05fdd93 (patch)
tree8db14b4b072b8a73ac85963f625b5bb3f77883ac /src/features/conversation-cache/cache.test.ts
parent90c438c4562793eb09358f9d1a050d2267f4fca5 (diff)
downloaddispatch-web-529c6a2bb56447fe93796111df3d4cc5a05fdd93.tar.gz
dispatch-web-529c6a2bb56447fe93796111df3d4cc5a05fdd93.zip
Slice 3 wave A: tabs model, model selector, cache delete, localStorage
- features/tabs: pure tab-workspace reducer (create/select/close/setModel/ setTitle/deriveTitle, draft=null active) + injected-persistence runes store - features/chat: mutable per-tab model (setModel) + delta routing guard (ignore foreign conversationId) + ModelSelector.svelte + DaisyUI chat bubbles / composer (keeps streaming <details> keying fix) - features/conversation-cache: surface delete(conversationId) on the wrapper for tab-close local-forget - adapters/local-storage: generic injected JSON localStore<T> (quota/corrupt-safe) Verified: svelte-check 0/0, vitest 273, biome clean, build ok.
Diffstat (limited to 'src/features/conversation-cache/cache.test.ts')
-rw-r--r--src/features/conversation-cache/cache.test.ts24
1 files changed, 24 insertions, 0 deletions
diff --git a/src/features/conversation-cache/cache.test.ts b/src/features/conversation-cache/cache.test.ts
index c68ed0d..89e81b8 100644
--- a/src/features/conversation-cache/cache.test.ts
+++ b/src/features/conversation-cache/cache.test.ts
@@ -171,3 +171,27 @@ describe("cache.evictIfOverBudget", () => {
expect(evicted).toEqual([]);
});
});
+
+describe("cache.delete", () => {
+ it("removes the conversation from the store", async () => {
+ const store = createFakeStore();
+ const cache = createConversationCache(store);
+
+ await store.append("conv-1", [chunk(1), chunk(2)]);
+ await cache.delete("conv-1");
+
+ const stored = await store.load("conv-1");
+ expect(stored).toEqual([]);
+ });
+
+ it("then load returns []", async () => {
+ const store = createFakeStore();
+ const cache = createConversationCache(store);
+
+ await cache.commit("conv-1", [chunk(1), chunk(2), chunk(3)]);
+ await cache.delete("conv-1");
+
+ const result = await cache.load("conv-1");
+ expect(result).toEqual([]);
+ });
+});