feat: journal dashboard widgets, agent polish, and edit-mode live previews
Journal dashboard widgets and quick-add; rich-text quick-add dialogs. Dashboard draft sync for live edit previews; assistant bubble + API tools. Journal UX: stress slider, mood grid, query cap fix.
This commit is contained in:
@@ -0,0 +1,52 @@
|
||||
import assert from "node:assert/strict";
|
||||
import { describe, it } from "node:test";
|
||||
import {
|
||||
clearAssistantChat,
|
||||
loadAssistantChat,
|
||||
saveAssistantChat,
|
||||
} from "../../src/modules/agent/assistant-chat-storage";
|
||||
|
||||
const storage = new Map<string, string>();
|
||||
|
||||
Object.defineProperty(globalThis, "localStorage", {
|
||||
value: {
|
||||
getItem: (key: string) => storage.get(key) ?? null,
|
||||
setItem: (key: string, value: string) => {
|
||||
storage.set(key, value);
|
||||
},
|
||||
removeItem: (key: string) => {
|
||||
storage.delete(key);
|
||||
},
|
||||
},
|
||||
configurable: true,
|
||||
});
|
||||
|
||||
describe("assistant chat storage", () => {
|
||||
it("round-trips messages per user", () => {
|
||||
storage.clear();
|
||||
const userId = "user-a";
|
||||
const messages = [
|
||||
{ role: "user" as const, content: "hello" },
|
||||
{ role: "assistant" as const, content: "hi there" },
|
||||
];
|
||||
|
||||
saveAssistantChat(userId, messages);
|
||||
assert.deepEqual(loadAssistantChat(userId), messages);
|
||||
});
|
||||
|
||||
it("keeps sessions isolated by user id", () => {
|
||||
storage.clear();
|
||||
saveAssistantChat("user-a", [{ role: "user", content: "for a" }]);
|
||||
saveAssistantChat("user-b", [{ role: "user", content: "for b" }]);
|
||||
|
||||
assert.deepEqual(loadAssistantChat("user-a"), [{ role: "user", content: "for a" }]);
|
||||
assert.deepEqual(loadAssistantChat("user-b"), [{ role: "user", content: "for b" }]);
|
||||
});
|
||||
|
||||
it("clears stored chat", () => {
|
||||
storage.clear();
|
||||
saveAssistantChat("user-a", [{ role: "user", content: "hello" }]);
|
||||
clearAssistantChat("user-a");
|
||||
assert.deepEqual(loadAssistantChat("user-a"), []);
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user