38 lines
1.1 KiB
JavaScript
38 lines
1.1 KiB
JavaScript
import assert from "node:assert/strict";
|
|
import { fileURLToPath } from "node:url";
|
|
import test from "node:test";
|
|
import { Client } from "@modelcontextprotocol/client";
|
|
import { StdioClientTransport } from "@modelcontextprotocol/client/stdio";
|
|
|
|
const serverPath = fileURLToPath(new URL("../mcp-server.mjs", import.meta.url));
|
|
|
|
test("MCP server completes the stdio handshake and exposes Yedir tools", async () => {
|
|
const client = new Client({ name: "yedir-mcp-test", version: "1.0.0" });
|
|
const transport = new StdioClientTransport({
|
|
command: process.execPath,
|
|
args: [serverPath],
|
|
env: {
|
|
PATH: process.env.PATH || "",
|
|
YEDIR_BASE_URL: "https://example.com",
|
|
YEDIR_ACCESS_TOKEN: "ydr_live_test-token",
|
|
},
|
|
stderr: "pipe",
|
|
});
|
|
|
|
try {
|
|
await client.connect(transport);
|
|
const { tools } = await client.listTools();
|
|
assert.deepEqual(
|
|
tools.map((tool) => tool.name).sort(),
|
|
[
|
|
"yedir_apply_canvas_operation",
|
|
"yedir_get_canvas",
|
|
"yedir_get_current_user",
|
|
"yedir_list_canvases",
|
|
]
|
|
);
|
|
} finally {
|
|
await client.close();
|
|
}
|
|
});
|