

























@@ -36,6 +36,10 @@ let callGatewayTool: typeof import("./tools/gateway.js").callGatewayTool;
3636let requestExecApprovalDecision: typeof import("./bash-tools.exec-approval-request.js").requestExecApprovalDecision;
3737let registerExecApprovalRequestForHost: typeof import("./bash-tools.exec-approval-request.js").registerExecApprovalRequestForHost;
383839+type ApprovalRequestPayload = {
40+commandSpans?: Array<{ startIndex: number; endIndex: number }>;
41+};
42+3943describe("requestExecApprovalDecision", () => {
4044beforeAll(async () => {
4145({ callGatewayTool } = await import("./tools/gateway.js"));
@@ -219,18 +223,12 @@ describe("requestExecApprovalDecision", () => {
219223ask: "always",
220224});
221225222-expect(callGatewayTool).toHaveBeenCalledWith(
223-"exec.approval.request",
224-expect.anything(),
225-expect.objectContaining({
226-commandSpans: expect.arrayContaining([
227-{ startIndex: 0, endIndex: 2 },
228-{ startIndex: 5, endIndex: 9 },
229-{ startIndex: 20, endIndex: 26 },
230-]),
231-}),
232-expect.anything(),
233-);
226+const payload = vi.mocked(callGatewayTool).mock.calls[0]?.[2] as
227+| ApprovalRequestPayload
228+| undefined;
229+expect(payload?.commandSpans).toContainEqual({ startIndex: 0, endIndex: 2 });
230+expect(payload?.commandSpans).toContainEqual({ startIndex: 5, endIndex: 9 });
231+expect(payload?.commandSpans).toContainEqual({ startIndex: 20, endIndex: 26 });
234232});
235233236234it("uses system run plan command text for host approval explanations", async () => {
@@ -251,14 +249,10 @@ describe("requestExecApprovalDecision", () => {
251249ask: "always",
252250});
253251254-expect(callGatewayTool).toHaveBeenCalledWith(
255-"exec.approval.request",
256-expect.anything(),
257-expect.objectContaining({
258-commandSpans: expect.arrayContaining([{ startIndex: 0, endIndex: 4 }]),
259-}),
260-expect.anything(),
261-);
252+const payload = vi.mocked(callGatewayTool).mock.calls[0]?.[2] as
253+| ApprovalRequestPayload
254+| undefined;
255+expect(payload?.commandSpans).toContainEqual({ startIndex: 0, endIndex: 4 });
262256});
263257264258it("keeps explicit command spans", async () => {
@@ -274,11 +268,9 @@ describe("requestExecApprovalDecision", () => {
274268ask: "always",
275269});
276270277-expect(callGatewayTool).toHaveBeenCalledWith(
278-"exec.approval.request",
279-expect.anything(),
280-expect.objectContaining({ commandSpans: [{ startIndex: 0, endIndex: 4 }] }),
281-expect.anything(),
282-);
271+const payload = vi.mocked(callGatewayTool).mock.calls[0]?.[2] as
272+| ApprovalRequestPayload
273+| undefined;
274+expect(payload?.commandSpans).toEqual([{ startIndex: 0, endIndex: 4 }]);
283275});
284276});
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。