返回 DeepSeek-Reasonix
workspace-session-presentation.test.ts
根目录 / desktop / frontend / src / __tests__ / workspace-session-presentation.test.ts
1 import assert from "node:assert/strict";
2 import { retainPreparedSessionLabels, sessionIsBlank, sessionMetadataPending } from "../lib/workspaceSessionPresentation";
3 import type { WorkspaceSessionSummary } from "../generated/desktopContract.generated";
4
5 const row = { ref: { hostId: "local", sessionId: "existing" }, title: "Previous authored title", preview: "preview", blank: false, metadataStatus: "ready" } as WorkspaceSessionSummary;
6 const pending = { ...row, title: "", preview: "", blank: true, metadataStatus: "pending" };
7 assert.equal(sessionIsBlank(pending), false);
8 assert.equal(sessionMetadataPending(pending), true);
9 assert.equal(retainPreparedSessionLabels([pending], [row])[0].title, row.title);
10 assert.equal(retainPreparedSessionLabels([{ ...pending, ref: { ...row.ref, sessionId: "other" } }], [row])[0].title, "");
11 assert.equal(retainPreparedSessionLabels([{ ...pending, metadataStatus: "ready" }], [row])[0].title, "");
12 assert.equal(sessionIsBlank({ ...pending, metadataStatus: "ready" }), true);
13 assert.equal(sessionIsBlank({ ...pending, metadataStatus: "failed" }), false);
14 console.log("PASS pending vs blank, retained labels, session isolation and authoritative empty metadata");
15
15 lines TYPESCRIPT