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