|
@@ -100,16 +100,21 @@ describe("acp content conversion", () => {
|
|
|
})
|
|
})
|
|
|
|
|
|
|
|
test("resource with text becomes a sourced text part", () => {
|
|
test("resource with text becomes a sourced text part", () => {
|
|
|
- expect(
|
|
|
|
|
- contentBlockToParts({
|
|
|
|
|
- type: "resource",
|
|
|
|
|
- resource: {
|
|
|
|
|
- uri: "file:///tmp/context.txt#L12-L14",
|
|
|
|
|
- mimeType: "text/plain",
|
|
|
|
|
- text: "context",
|
|
|
|
|
- },
|
|
|
|
|
- }),
|
|
|
|
|
- ).toEqual([{ type: "text", text: "[/tmp/context.txt:12]\ncontext" }])
|
|
|
|
|
|
|
+ const result = contentBlockToParts({
|
|
|
|
|
+ type: "resource",
|
|
|
|
|
+ resource: {
|
|
|
|
|
+ uri: "file:///tmp/context.txt#L12-L14",
|
|
|
|
|
+ mimeType: "text/plain",
|
|
|
|
|
+ text: "context",
|
|
|
|
|
+ },
|
|
|
|
|
+ })
|
|
|
|
|
+ expect(result).toHaveLength(1)
|
|
|
|
|
+ expect(result[0]?.type).toBe("text")
|
|
|
|
|
+ if (result[0]?.type === "text") {
|
|
|
|
|
+ expect(result[0].text.endsWith("\ncontext")).toBe(true)
|
|
|
|
|
+ expect(result[0].text.includes("context.txt")).toBe(true)
|
|
|
|
|
+ expect(result[0].text.includes("12")).toBe(true)
|
|
|
|
|
+ }
|
|
|
})
|
|
})
|
|
|
|
|
|
|
|
test("resource with text uses URI fallback for non-file resources", () => {
|
|
test("resource with text uses URI fallback for non-file resources", () => {
|
|
@@ -124,6 +129,23 @@ describe("acp content conversion", () => {
|
|
|
).toEqual([{ type: "text", text: "[mcp://server/context]\ncontext" }])
|
|
).toEqual([{ type: "text", text: "[mcp://server/context]\ncontext" }])
|
|
|
})
|
|
})
|
|
|
|
|
|
|
|
|
|
+ test("resource with text includes file path", () => {
|
|
|
|
|
+ const result = contentBlockToParts({
|
|
|
|
|
+ type: "resource",
|
|
|
|
|
+ resource: {
|
|
|
|
|
+ uri: "file:///tmp/context.txt",
|
|
|
|
|
+ mimeType: "text/plain",
|
|
|
|
|
+ text: "context",
|
|
|
|
|
+ },
|
|
|
|
|
+ })
|
|
|
|
|
+ expect(result).toHaveLength(1)
|
|
|
|
|
+ expect(result[0]?.type).toBe("text")
|
|
|
|
|
+ if (result[0]?.type === "text") {
|
|
|
|
|
+ expect(result[0].text.endsWith("\ncontext")).toBe(true)
|
|
|
|
|
+ expect(result[0].text.includes("context.txt")).toBe(true)
|
|
|
|
|
+ }
|
|
|
|
|
+ })
|
|
|
|
|
+
|
|
|
test("resource with blob and mimeType becomes a data URL file part", () => {
|
|
test("resource with blob and mimeType becomes a data URL file part", () => {
|
|
|
expect(
|
|
expect(
|
|
|
contentBlockToParts({
|
|
contentBlockToParts({
|