





























@@ -58,8 +58,16 @@ afterEach(() => {
5858resetGlobalHookRunner();
5959});
606061+function requireFirstMockCall(calls: readonly unknown[][], label: string): unknown[] {
62+const call = calls.at(0);
63+if (!call) {
64+throw new Error(`expected ${label} call`);
65+}
66+return call;
67+}
68+6169function requireToolPolicyParams(mock: ReturnType<typeof vi.fn>) {
62-const params = mock.mock.calls[0]?.[0] as
70+const params = requireFirstMockCall(mock.mock.calls, "plugin tool policy")[0] as
6371| { toolAllowlist?: string[]; toolDenylist?: string[] }
6472| undefined;
6573if (!params) {
@@ -150,14 +158,14 @@ describe("plugin tools MCP server", () => {
150158arguments: { query: "remember this" },
151159});
152160expect(execute).toHaveBeenCalledTimes(1);
153-const executeCall = execute.mock.calls[0];
154-const requestId = executeCall?.[0];
161+const executeCall = requireFirstMockCall(execute.mock.calls, "plugin tool execute");
162+const requestId = executeCall[0];
155163expect(typeof requestId).toBe("string");
156-expect(requestId?.startsWith("mcp-")).toBe(true);
157-expect(Number.isSafeInteger(Number(requestId?.slice("mcp-".length)))).toBe(true);
158-expect(executeCall?.[1]).toEqual({ query: "remember this" });
159-expect(executeCall?.[2]).toBeUndefined();
160-expect(executeCall?.[3]).toBeUndefined();
164+expect((requestId as string).startsWith("mcp-")).toBe(true);
165+expect(Number.isSafeInteger(Number((requestId as string).slice("mcp-".length)))).toBe(true);
166+expect(executeCall[1]).toEqual({ query: "remember this" });
167+expect(executeCall[2]).toBeUndefined();
168+expect(executeCall[3]).toBeUndefined();
161169expect(result.content).toEqual([{ type: "text", text: "Stored." }]);
162170});
163171此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。