import { describe, expect, it } from "vitest" ;
import { connectOk, installGatewayTestHooks, rpcReq } from "./test-helpers.js" ;
import { withServer } from "./test-with-server.js" ;
installGatewayTestHooks({ scope: "suite" });
describe("gateway tools.catalog" , () => {
it("returns core catalog data and includes tts" , async () => {
await withServer(async (ws) => {
await connectOk(ws, { token: "secret" , scopes: ["operator.read" ] });
const res = await rpcReq<{
agentId?: string;
groups?: Array<{
id?: string;
source?: "core" | "plugin" ;
tools?: Array<{ id?: string; source?: "core" | "plugin" }>;
}>;
}>(ws, "tools.catalog" , {});
expect(res.ok).toBe(true );
expect(res.payload?.agentId).toBeTruthy();
const mediaGroup = res.payload?.groups?.find((group) => group.id === "media" );
expect(mediaGroup?.tools?.some((tool) => tool.id === "tts" && tool.source === "core" )).toBe(
true ,
);
});
});
it("supports includePlugins=false and rejects unknown agent ids" , async () => {
await withServer(async (ws) => {
await connectOk(ws, { token: "secret" , scopes: ["operator.read" ] });
const noPlugins = await rpcReq<{
groups?: Array<{ source?: "core" | "plugin" }>;
}>(ws, "tools.catalog" , { includePlugins: false });
expect(noPlugins.ok).toBe(true );
expect((noPlugins.payload?.groups ?? []).every((group) => group.source !== "plugin" )).toBe(
true ,
);
const unknownAgent = await rpcReq(ws, "tools.catalog" , { agentId: "does-not-exist" });
expect(unknownAgent.ok).toBe(false );
expect(unknownAgent.error?.message ?? "" ).toContain("unknown agent id" );
});
});
});
Messung V0.5 in Prozent C=100 H=98 G=98
¤ Dauer der Verarbeitung: 0.2 Sekunden
¤
*© Formatika GbR, Deutschland