import { describe, it, expect } from "vitest";
import { buildImageSummary } from "../../../src/utils/image-summary";
import { ImageInput, ImageCaptureData } from "../../../src/types";
describe("buildImageSummary", () => {
it("should return a message if no files were saved", () => {
const input: ImageInput = { capture_focus: "background" };
const data: ImageCaptureData = { saved_files: [] };
const summary = buildImageSummary(input, data);
expect(summary).toBe(
"Image capture completed but no files were saved or available for analysis.",
);
});
it("should generate a summary for a single saved file without a question", () => {
const input: ImageInput = {
path: "/path/to/image.png",
capture_focus: "background",
};
const data: ImageCaptureData = {
saved_files: [{ path: "/path/to/image.png", mime_type: "image/png" }],
};
const summary = buildImageSummary(input, data);
expect(summary).toBe(
"Captured 1 image\nImage saved to: /path/to/image.png",
);
});
it("should generate a summary for a single saved file with a question and path", () => {
const input: ImageInput = {
path: "/path/to/image.png",
capture_focus: "background",
};
const data: ImageCaptureData = {
saved_files: [{ path: "/path/to/image.png", mime_type: "image/png" }],
};
const summary = buildImageSummary(input, data, "What is this?");
expect(summary).toBe(
"Captured 1 image\nImage saved to: /path/to/image.png",
);
});
it("should generate a summary for a single temporary file with a question", () => {
const input: ImageInput = { capture_focus: "background" };
const data: ImageCaptureData = {
saved_files: [{ path: "/tmp/image.png", mime_type: "image/png" }],
};
const summary = buildImageSummary(input, data, "What is this?");
expect(summary).toBe("Captured 1 image");
});
it("should generate a summary for multiple saved files", () => {
const input: ImageInput = {
path: "/path/to/",
capture_focus: "background",
};
const data: ImageCaptureData = {
saved_files: [
{ path: "/path/to/image1.png", mime_type: "image/png" },
{
path: "/path/to/image2.png",
mime_type: "image/png",
item_label: "Finder",
},
],
};
const summary = buildImageSummary(input, data);
expect(summary).toBe(
"Captured 2 images\n2 images saved:\n1. /path/to/image1.png\n2. /path/to/image2.png (Finder)",
);
});
});