返回 DeepSeek-Reasonix
attachment-submit-identity.test.ts
根目录 / desktop / frontend / src / __tests__ / attachment-submit-identity.test.ts
1 import assert from "node:assert/strict";
2 import { imageSubmissionIdentity, settleImageSubmission, captureImageTarget } from "../lib/attachmentSubmit";
3 import { app, type AppBindings } from "../lib/bridge";
4
5 const first = imageSubmissionIdentity("session-a", "draft-version-1");
6 assert.equal(imageSubmissionIdentity("session-a", "draft-version-1"), first);
7 assert.notEqual(imageSubmissionIdentity("session-b", "draft-version-1"), first);
8 const edited = imageSubmissionIdentity("session-a", "draft-version-2");
9 assert.notEqual(edited, first);
10 settleImageSubmission("session-a", first);
11 assert.equal(imageSubmissionIdentity("session-a", "draft-version-2"), edited);
12 settleImageSubmission("session-a", edited);
13 assert.notEqual(imageSubmissionIdentity("session-a", "draft-version-2"), edited);
14 await assert.rejects(captureImageTarget({} as AppBindings, { kind: "session", tabId: "a" }), /unsupported/);
15 const captured = await app.CaptureAttachmentTarget!({ kind: "session", tabId: "mock-tab" });
16 assert.deepEqual(captured.capabilities, ["attachments-v2"]);
17 const staged = await app.StageImageForTarget!(captured.token, "mock-operation", "photo.png", "image/png", "data:image/png;base64,aW1hZ2U=");
18 assert.equal(await app.ReadDraftImageForTarget!(captured.token, staged.draftId), "data:image/png;base64,aW1hZ2U=");
19 console.log("attachment submission identity: retry, edit, session isolation, capability rejection, and lazy mock loading passed");
20
20 lines TYPESCRIPT