源码快照 @ 2026-09-02 (source-only, 剔除非源码素材)
This commit is contained in:
@@ -0,0 +1,84 @@
|
||||
import { describe, expect, test } from "bun:test";
|
||||
import type { UIMessage } from "ai";
|
||||
|
||||
import { canOpenArtifact, getArtifactsFromMessages } from "../src/lib/artifacts";
|
||||
import { deriveOpenTargets, filePathFromFileUrl, sameOpenTargets, type OpenTarget } from "../src/react-app/domains/session/artifacts/open-target";
|
||||
|
||||
const ATTACHMENT_URL = "file:///workspaces/Worker%20Root/.opencode/openwork/inbox/chat-attachments/ses_1/nonce-pge_natural_gas_billing_billing_data_service%202_2_2025-02-20_to_2025-12-05.csv";
|
||||
const ATTACHMENT_PATH = "/workspaces/Worker Root/.opencode/openwork/inbox/chat-attachments/ses_1/nonce-pge_natural_gas_billing_billing_data_service 2_2_2025-02-20_to_2025-12-05.csv";
|
||||
|
||||
function userMessageWithAttachment(): UIMessage {
|
||||
return {
|
||||
id: "msg_1",
|
||||
role: "user",
|
||||
parts: [
|
||||
{ type: "text", text: "what do you make of these bills?" },
|
||||
{
|
||||
type: "file",
|
||||
mediaType: "text/plain",
|
||||
filename: "pge_natural_gas_billing_billing_data_service 2_2_2025-02-20_to_2025-12-05.csv",
|
||||
url: ATTACHMENT_URL,
|
||||
},
|
||||
],
|
||||
};
|
||||
}
|
||||
|
||||
describe("attachment artifacts", () => {
|
||||
test("recognizes equivalent resolved target snapshots", () => {
|
||||
const target: OpenTarget = {
|
||||
id: "file:report.csv",
|
||||
kind: "file",
|
||||
value: "report.csv",
|
||||
name: "report.csv",
|
||||
preview: "sheet",
|
||||
confidence: 100,
|
||||
reason: "workspace tree",
|
||||
exists: true,
|
||||
size: 42,
|
||||
updatedAt: 100,
|
||||
};
|
||||
|
||||
expect(sameOpenTargets([target], [{ ...target }])).toBe(true);
|
||||
expect(sameOpenTargets([target], [{ ...target, size: 43 }])).toBe(false);
|
||||
});
|
||||
|
||||
test("filePathFromFileUrl decodes workspace file URLs and rejects other schemes", () => {
|
||||
expect(filePathFromFileUrl(ATTACHMENT_URL)).toBe(ATTACHMENT_PATH);
|
||||
expect(filePathFromFileUrl("file:///C:/Users/Ada/%E5%B7%A5%E4%BD%9C/scan.pdf")).toBe("C:/Users/Ada/工作/scan.pdf");
|
||||
expect(filePathFromFileUrl("data:text/plain;base64,aGk=")).toBeNull();
|
||||
expect(filePathFromFileUrl("https://example.com/file.csv")).toBeNull();
|
||||
});
|
||||
|
||||
test("deriveOpenTargets surfaces user attachment file parts, spaces included", () => {
|
||||
const targets = deriveOpenTargets([userMessageWithAttachment()]);
|
||||
const attachment = targets.find((target) => target.reason === "chat attachment");
|
||||
|
||||
expect(attachment).toMatchObject({
|
||||
kind: "file",
|
||||
value: ATTACHMENT_PATH,
|
||||
name: "pge_natural_gas_billing_billing_data_service 2_2_2025-02-20_to_2025-12-05.csv",
|
||||
preview: "sheet",
|
||||
confidence: 95,
|
||||
});
|
||||
});
|
||||
|
||||
test("attachment artifacts become clickable once the server verifies they exist", () => {
|
||||
const message = userMessageWithAttachment();
|
||||
const derived = deriveOpenTargets([message]);
|
||||
const verified: OpenTarget[] = derived.map((target) => ({ ...target, exists: true }));
|
||||
|
||||
const artifacts = getArtifactsFromMessages([message], verified);
|
||||
const attachment = artifacts.find((artifact) => artifact.legacy_target.reason === "chat attachment");
|
||||
|
||||
expect(attachment).toBeDefined();
|
||||
expect(attachment && canOpenArtifact(attachment)).toBe(true);
|
||||
});
|
||||
|
||||
test("unverified file-strip artifacts stay clickable for on-demand resolution", () => {
|
||||
const artifacts = getArtifactsFromMessages([userMessageWithAttachment()], []);
|
||||
const attachment = artifacts.find((artifact) => artifact.name.includes("pge_natural_gas"));
|
||||
|
||||
expect(attachment?.legacy_target.exists).toBeUndefined();
|
||||
expect(attachment && canOpenArtifact(attachment)).toBe(true);
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user