mirror of https://github.com/openclaw/openclaw.git
47 lines
1.3 KiB
TypeScript
47 lines
1.3 KiB
TypeScript
import { describe, expect, it } from "vitest";
|
|
import { selectAttachments } from "./attachments.js";
|
|
import type { MediaAttachment } from "./types.js";
|
|
|
|
describe("media-understanding selectAttachments guards", () => {
|
|
it("does not throw when attachments is undefined", () => {
|
|
const run = () =>
|
|
selectAttachments({
|
|
capability: "image",
|
|
attachments: undefined as unknown as MediaAttachment[],
|
|
policy: { prefer: "path" },
|
|
});
|
|
|
|
expect(run).not.toThrow();
|
|
expect(run()).toEqual([]);
|
|
});
|
|
|
|
it("does not throw when attachments is not an array", () => {
|
|
const run = () =>
|
|
selectAttachments({
|
|
capability: "audio",
|
|
attachments: { malformed: true } as unknown as MediaAttachment[],
|
|
policy: { prefer: "url" },
|
|
});
|
|
|
|
expect(run).not.toThrow();
|
|
expect(run()).toEqual([]);
|
|
});
|
|
|
|
it("ignores malformed attachment entries inside an array", () => {
|
|
const run = () =>
|
|
selectAttachments({
|
|
capability: "audio",
|
|
attachments: [
|
|
null,
|
|
{ index: 1, path: 123 },
|
|
{ index: 2, url: true },
|
|
{ index: 3, mime: { nope: true } },
|
|
] as unknown as MediaAttachment[],
|
|
policy: { prefer: "path" },
|
|
});
|
|
|
|
expect(run).not.toThrow();
|
|
expect(run()).toEqual([]);
|
|
});
|
|
});
|