openclaw/src/media-understanding/attachments.guards.test.ts

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([]);
});
});