import { describe, expect, it } from "vite-plus/test"; import { MARKDOWN_IMAGE_MAX_HEIGHT, MARKDOWN_IMAGE_MAX_WIDTH, resolveMarkdownImageDisplaySize, } from "./markdownImageSize"; describe("resolveMarkdownImageDisplaySize", () => { it("keeps small images at their intrinsic size", () => { expect( resolveMarkdownImageDisplaySize({ sourceWidth: 96, sourceHeight: 96, availableWidth: 332, }), ).toEqual({ width: 96, height: 96 }); }); it("fits wide images to the available chat width", () => { expect( resolveMarkdownImageDisplaySize({ sourceWidth: 960, sourceHeight: 540, availableWidth: 332, }), ).toEqual({ width: 332, height: 186.75 }); }); it("caps wide images at 480 points on larger screens", () => { expect( resolveMarkdownImageDisplaySize({ sourceWidth: 960, sourceHeight: 540, availableWidth: 900, }), ).toEqual({ width: MARKDOWN_IMAGE_MAX_WIDTH, height: 270 }); }); it("caps tall images by height without changing their aspect ratio", () => { expect( resolveMarkdownImageDisplaySize({ sourceWidth: 400, sourceHeight: 800, availableWidth: 332, }), ).toEqual({ width: 240, height: MARKDOWN_IMAGE_MAX_HEIGHT }); }); it("rejects dimensions that cannot produce a stable layout", () => { expect( resolveMarkdownImageDisplaySize({ sourceWidth: 0, sourceHeight: 100, availableWidth: 332 }), ).toBeNull(); expect( resolveMarkdownImageDisplaySize({ sourceWidth: 100, sourceHeight: Number.NaN, availableWidth: 332, }), ).toBeNull(); }); });