mirror of https://github.com/openclaw/openclaw.git
39 lines
1.2 KiB
TypeScript
39 lines
1.2 KiB
TypeScript
import { describe, expect, it } from "vitest";
|
|
import {
|
|
buildSafeToolName,
|
|
normalizeReservedToolNames,
|
|
sanitizeServerName,
|
|
TOOL_NAME_SEPARATOR,
|
|
} from "./pi-bundle-mcp-names.js";
|
|
|
|
describe("pi bundle MCP names", () => {
|
|
it("sanitizes and disambiguates server names", () => {
|
|
const usedNames = new Set<string>();
|
|
|
|
expect(sanitizeServerName("vigil-harbor", usedNames)).toBe("vigil-harbor");
|
|
expect(sanitizeServerName("vigil:harbor", usedNames)).toBe("vigil-harbor-2");
|
|
});
|
|
|
|
it("builds provider-safe tool names and avoids collisions", () => {
|
|
const reservedNames = normalizeReservedToolNames(["memory__status"]);
|
|
|
|
const safeToolName = buildSafeToolName({
|
|
serverName: "memory",
|
|
toolName: "status",
|
|
reservedNames,
|
|
});
|
|
expect(safeToolName).toBe(`memory${TOOL_NAME_SEPARATOR}status-2`);
|
|
});
|
|
|
|
it("truncates overlong tool names while keeping the server prefix", () => {
|
|
const safeToolName = buildSafeToolName({
|
|
serverName: "memory",
|
|
toolName: "x".repeat(200),
|
|
reservedNames: new Set(),
|
|
});
|
|
|
|
expect(safeToolName.startsWith(`memory${TOOL_NAME_SEPARATOR}`)).toBe(true);
|
|
expect(safeToolName.length).toBeLessThanOrEqual(64);
|
|
});
|
|
});
|