Buckets:
| import { describe, expect, test } from "bun:test" | |
| import { readLocalAttachmentWith } from "../../src/component/prompt/local-attachment" | |
| import type { LocalFiles } from "../../src/component/prompt/local-attachment" | |
| function files(input: { mime: string; text?: string; bytes?: Uint8Array }): LocalFiles { | |
| return { | |
| mime: async () => input.mime, | |
| readText: async () => input.text ?? "", | |
| readBytes: async () => input.bytes ?? new Uint8Array(), | |
| } | |
| } | |
| describe("prompt local attachments", () => { | |
| test("reads SVG attachments as text", async () => { | |
| expect(await readLocalAttachmentWith(files({ mime: "image/svg+xml", text: "<svg />" }), "/tmp/image.svg")).toEqual({ | |
| type: "text", | |
| mime: "image/svg+xml", | |
| content: "<svg />", | |
| }) | |
| }) | |
| test("reads image and PDF attachments as bytes", async () => { | |
| const content = new Uint8Array([1, 2, 3]) | |
| expect(await readLocalAttachmentWith(files({ mime: "application/pdf", bytes: content }), "/tmp/file.pdf")).toEqual({ | |
| type: "binary", | |
| mime: "application/pdf", | |
| content, | |
| }) | |
| }) | |
| test("ignores unsupported and unreadable local files", async () => { | |
| expect(await readLocalAttachmentWith(files({ mime: "text/plain" }), "/tmp/file.txt")).toBeUndefined() | |
| expect( | |
| await readLocalAttachmentWith( | |
| { | |
| ...files({ mime: "image/png" }), | |
| readBytes: async () => Promise.reject(new Error("missing")), | |
| }, | |
| "/tmp/missing.png", | |
| ), | |
| ).toBeUndefined() | |
| }) | |
| }) | |
Xet Storage Details
- Size:
- 1.51 kB
- Xet hash:
- db682cb4fed0b8bcf1f42d0cdf4187824477c7d138de436d9e398d0fd6738a3e
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.