test: dedupe exec host boundary mocks

This commit is contained in:
Peter Steinberger
2026-04-18 22:18:40 +01:00
parent 40d2e5aa45
commit 7b2a723891
2 changed files with 22 additions and 24 deletions

View File

@@ -1,5 +1,8 @@
import { beforeAll, beforeEach, describe, expect, it, vi } from "vitest";
type StrictInlineEvalBoundary =
typeof import("./bash-tools.exec-host-shared.js").enforceStrictInlineEvalApprovalBoundary;
const INLINE_EVAL_HIT = {
executable: "python3",
normalizedExecutable: "python3",
@@ -54,15 +57,10 @@ const resolveExecHostApprovalContextMock = vi.hoisted(() =>
const runExecProcessMock = vi.hoisted(() => vi.fn());
const sendExecApprovalFollowupResultMock = vi.hoisted(() => vi.fn(async () => undefined));
const enforceStrictInlineEvalApprovalBoundaryMock = vi.hoisted(() =>
vi.fn(
(value: {
approvedByAsk: boolean;
deniedReason: string | null;
}): {
approvedByAsk: boolean;
deniedReason: string | null;
} => value,
),
vi.fn<StrictInlineEvalBoundary>((value) => ({
approvedByAsk: value.approvedByAsk,
deniedReason: value.deniedReason,
})),
);
const detectInterpreterInlineEvalArgvMock = vi.hoisted(() =>
vi.fn(
@@ -171,9 +169,10 @@ describe("processGatewayAllowlist", () => {
runExecProcessMock.mockReset();
sendExecApprovalFollowupResultMock.mockReset();
enforceStrictInlineEvalApprovalBoundaryMock.mockReset();
enforceStrictInlineEvalApprovalBoundaryMock.mockImplementation(
(value: { approvedByAsk: boolean; deniedReason: string | null }) => value,
);
enforceStrictInlineEvalApprovalBoundaryMock.mockImplementation((value) => ({
approvedByAsk: value.approvedByAsk,
deniedReason: value.deniedReason,
}));
detectInterpreterInlineEvalArgvMock.mockReset();
detectInterpreterInlineEvalArgvMock.mockReturnValue(null);
buildExecApprovalPendingToolResultMock.mockReturnValue({

View File

@@ -1,5 +1,8 @@
import { beforeAll, beforeEach, describe, expect, it, vi } from "vitest";
type StrictInlineEvalBoundary =
typeof import("./bash-tools.exec-host-shared.js").enforceStrictInlineEvalApprovalBoundary;
const INLINE_EVAL_HIT = {
executable: "python3",
normalizedExecutable: "python3",
@@ -53,15 +56,10 @@ const createExecApprovalDecisionStateMock = vi.hoisted(() =>
const buildExecApprovalPendingToolResultMock = vi.hoisted(() => vi.fn());
const sendExecApprovalFollowupResultMock = vi.hoisted(() => vi.fn(async () => undefined));
const enforceStrictInlineEvalApprovalBoundaryMock = vi.hoisted(() =>
vi.fn(
(value: {
approvedByAsk: boolean;
deniedReason: string | null;
}): {
approvedByAsk: boolean;
deniedReason: string | null;
} => value,
),
vi.fn<StrictInlineEvalBoundary>((value) => ({
approvedByAsk: value.approvedByAsk,
deniedReason: value.deniedReason,
})),
);
const registerExecApprovalRequestForHostOrThrowMock = vi.hoisted(() =>
vi.fn(async () => undefined),
@@ -229,9 +227,10 @@ describe("executeNodeHostCommand", () => {
});
sendExecApprovalFollowupResultMock.mockReset();
enforceStrictInlineEvalApprovalBoundaryMock.mockReset();
enforceStrictInlineEvalApprovalBoundaryMock.mockImplementation(
(value: { approvedByAsk: boolean; deniedReason: string | null }) => value,
);
enforceStrictInlineEvalApprovalBoundaryMock.mockImplementation((value) => ({
approvedByAsk: value.approvedByAsk,
deniedReason: value.deniedReason,
}));
detectInterpreterInlineEvalArgvMock.mockReset();
detectInterpreterInlineEvalArgvMock.mockReturnValue(null);
registerExecApprovalRequestForHostOrThrowMock.mockReset();