Files
openwork/apps/app/tests/office-attachment-ui.test.ts

57 lines
3.0 KiB
TypeScript

import { describe, expect, test } from "bun:test";
import {
getMediaBadge,
getSafeFileDownloadUrl,
getSafeFileRevealPath,
} from "../src/components/chat/utils";
import { getArtifactsFromMessages } from "../src/lib/artifacts";
const DOCX_MIME = "application/vnd.openxmlformats-officedocument.wordprocessingml.document";
const PPTX_MIME = "application/vnd.openxmlformats-officedocument.presentationml.presentation";
const XLSX_MIME = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
describe("Office attachment UI affordances", () => {
test("uses compact Office badges instead of exposing MIME subtypes", () => {
expect(getMediaBadge({ filename: "QuarterlyBrief.docx", mediaType: DOCX_MIME })).toBe("DOCX");
expect(getMediaBadge({ filename: "LaunchRoadmap.PPTX", mediaType: PPTX_MIME })).toBe("PPTX");
expect(getMediaBadge({ filename: "LaunchRoadmap.PPTX", mediaType: "application/octet-stream" })).toBe("PPTX");
expect(getMediaBadge({ filename: "RevenueWorkbook.XLSX", mediaType: XLSX_MIME })).toBe("XLSX");
expect(getMediaBadge({ filename: "RevenueWorkbook.XLSX", mediaType: "" })).toBe("XLSX");
});
test("only exposes download actions for browser-managed file URLs", () => {
expect(getSafeFileDownloadUrl({ url: `data:${DOCX_MIME};base64,UEsDBA==` })).toBe(`data:${DOCX_MIME};base64,UEsDBA==`);
expect(getSafeFileDownloadUrl({ url: "blob:http://localhost/office-download" })).toBe("blob:http://localhost/office-download");
expect(getSafeFileDownloadUrl({ url: "file:///workspace/artifacts/QuarterlyBrief.docx" })).toBeNull();
expect(getSafeFileDownloadUrl({ url: "https://example.com/QuarterlyBrief.docx" })).toBeNull();
expect(getSafeFileDownloadUrl({ url: "javascript:alert(1)" })).toBeNull();
});
test("only exposes reveal actions for local file URLs", () => {
expect(getSafeFileRevealPath({ url: "file:///workspace/artifacts/Quarterly%20Brief.docx" })).toBe("/workspace/artifacts/Quarterly Brief.docx");
expect(getSafeFileRevealPath({ url: "file:///C:/Users/Jalil/Quarterly%20Brief.docx" })).toBe("C:/Users/Jalil/Quarterly Brief.docx");
expect(getSafeFileRevealPath({ url: "blob:http://localhost/office-download" })).toBeNull();
expect(getSafeFileRevealPath({ url: "https://example.com/QuarterlyBrief.docx" })).toBeNull();
expect(getSafeFileRevealPath({ url: "javascript:alert(1)" })).toBeNull();
});
test("collects DOCX artifacts as document previews", () => {
const artifacts = getArtifactsFromMessages([
{
id: "msg_1",
role: "assistant",
parts: [{ type: "text", text: "Created artifacts/QuarterlyBrief.docx and artifacts/LaunchRoadmap.pptx." }],
},
]);
const docx = artifacts.find((artifact) => artifact.path === "artifacts/quarterlybrief.docx");
const pptx = artifacts.find((artifact) => artifact.path === "artifacts/launchroadmap.pptx");
expect(docx?.type).toBe("document");
expect(docx?.legacy_target.preview).toBe("document");
expect(pptx?.type).toBe("slides");
expect(pptx?.legacy_target.preview).toBe("slides");
});
});