feat(web): add tools approvals models and images
This commit is contained in:
@@ -0,0 +1,24 @@
|
||||
import { describe, expect, it, vi } from "vitest";
|
||||
import { HarnessAttachmentAdapter } from "../src/assistant/attachment-adapter.js";
|
||||
|
||||
describe("HarnessAttachmentAdapter", () => {
|
||||
it("uploads immediately, emits no base64, and revokes its local preview", async () => {
|
||||
const createObjectURL = vi.spyOn(URL, "createObjectURL").mockReturnValue("blob:preview");
|
||||
const revokeObjectURL = vi.spyOn(URL, "revokeObjectURL").mockImplementation(() => undefined);
|
||||
const upload = vi.fn().mockResolvedValue({
|
||||
attachment: { attachmentId: "att_server", sessionId: "ses_1", name: "one.png", mediaType: "image/png", byteSize: 68, width: 1, height: 1, status: "ready" },
|
||||
});
|
||||
const remove = vi.fn().mockResolvedValue({ removed: true });
|
||||
const adapter = new HarnessAttachmentAdapter({ uploadAttachment: upload, deleteAttachment: remove });
|
||||
const file = new File([new Uint8Array([137, 80, 78, 71])], "one.png", { type: "image/png" });
|
||||
|
||||
const pending = await adapter.add({ file });
|
||||
expect(upload).toHaveBeenCalledWith(file);
|
||||
expect(adapter.previewUrl("att_server")).toBe("blob:preview");
|
||||
|
||||
const complete = await adapter.send(pending);
|
||||
expect(JSON.stringify(complete)).not.toContain("base64");
|
||||
expect(revokeObjectURL).toHaveBeenCalledWith("blob:preview");
|
||||
expect(createObjectURL).toHaveBeenCalledWith(file);
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user