Files
edgeever/scripts/edgeever-mcp-stdio.test.mjs

51 lines
1.5 KiB
JavaScript

import { describe, expect, test } from "bun:test";
import { createMcpHttpHeaders, encodeMirroredHeader } from "./mcp-http-headers.mjs";
const modernRequest = (method, params = {}) => ({
jsonrpc: "2.0",
id: 1,
method,
params: {
...params,
_meta: {
"io.modelcontextprotocol/protocolVersion": "2026-07-28",
"io.modelcontextprotocol/clientCapabilities": {},
},
},
});
describe("EdgeEver MCP stdio adapter headers", () => {
test("mirrors modern protocol routing fields into HTTP headers", () => {
expect(createMcpHttpHeaders(modernRequest("server/discover"), null)).toEqual({
"MCP-Protocol-Version": "2026-07-28",
"Mcp-Method": "server/discover",
});
expect(
createMcpHttpHeaders(modernRequest("tools/call", { name: "get_current_user", arguments: {} }), null),
).toEqual({
"MCP-Protocol-Version": "2026-07-28",
"Mcp-Method": "tools/call",
"Mcp-Name": "get_current_user",
});
});
test("keeps legacy negotiation and safely encodes mirrored names", () => {
expect(
createMcpHttpHeaders(
{ jsonrpc: "2.0", id: 1, method: "tools/list" },
"2025-11-25",
),
).toEqual({
"MCP-Protocol-Version": "2025-11-25",
"Mcp-Method": "tools/list",
});
expect(encodeMirroredHeader("笔记/今天")).toBe(
`=?base64?${Buffer.from("笔记/今天", "utf8").toString("base64")}?=`,
);
expect(encodeMirroredHeader("=?base64?literal?=")).toBe(
`=?base64?${Buffer.from("=?base64?literal?=", "utf8").toString("base64")}?=`,
);
});
});