Files
AirCoding/packages/tui/test/prompt/local-attachment.test.ts
airlongdian e2fd375a1c feat: 品牌替换 + 启动优化 + AGENTS.md 模板定制
- 品牌替换:OpenCode/opencode → AirCoding/aircoding(16+ 文件)
- Logo ASCII art:修复 left/right 行数不匹配导致的启动崩溃
- 启动诊断:添加 OPENCODE_PRINT_TIMING 计时探针
- dev 模式默认 --pure 跳过外部插件加载
- AGENTS.md 模板:追加 AirCoding 多 Agent 专项段落
- architect prompt + plugin:强化 AGENTS.md 产出验证
2026-06-14 09:31:29 +08:00

44 lines
1.5 KiB
TypeScript

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()
})
})