




























@@ -12,6 +12,7 @@ const chromeMcpMocks = vi.hoisted(() => ({
1212evaluateChromeMcpScript: vi.fn(
1313async (_params: { profileName: string; targetId: string; fn: string }) => true,
1414),
15+fillChromeMcpElement: vi.fn(async () => {}),
1516navigateChromeMcpPage: vi.fn(async ({ url }: { url: string }) => ({ url })),
1617takeChromeMcpScreenshot: vi.fn(async () => Buffer.from("png")),
1718takeChromeMcpSnapshot: vi.fn(async () => ({
@@ -33,7 +34,7 @@ vi.mock("../chrome-mcp.js", () => ({
3334closeChromeMcpTab: vi.fn(async () => {}),
3435dragChromeMcpElement: vi.fn(async () => {}),
3536evaluateChromeMcpScript: chromeMcpMocks.evaluateChromeMcpScript,
36-fillChromeMcpElement: vi.fn(async () => {}),
37+fillChromeMcpElement: chromeMcpMocks.fillChromeMcpElement,
3738fillChromeMcpForm: vi.fn(async () => {}),
3839hoverChromeMcpElement: vi.fn(async () => {}),
3940navigateChromeMcpPage: chromeMcpMocks.navigateChromeMcpPage,
@@ -109,6 +110,7 @@ describe("existing-session browser routes", () => {
109110routeState.profileCtx.listTabs.mockClear();
110111chromeMcpMocks.clickChromeMcpElement.mockClear();
111112chromeMcpMocks.evaluateChromeMcpScript.mockReset();
113+chromeMcpMocks.fillChromeMcpElement.mockClear();
112114chromeMcpMocks.navigateChromeMcpPage.mockClear();
113115chromeMcpMocks.takeChromeMcpScreenshot.mockClear();
114116chromeMcpMocks.takeChromeMcpSnapshot.mockClear();
@@ -238,6 +240,25 @@ describe("existing-session browser routes", () => {
238240expect(chromeMcpMocks.evaluateChromeMcpScript).not.toHaveBeenCalled();
239241});
240242243+it("fails closed for existing-session type timeout overrides", async () => {
244+const handler = getActPostHandler();
245+const response = createBrowserRouteResponse();
246+await handler?.(
247+{
248+params: {},
249+query: {},
250+body: { kind: "type", ref: "input-1", text: "hello", timeoutMs: 1234 },
251+},
252+response.res,
253+);
254+255+expect(response.statusCode).toBe(501);
256+expect(response.body).toMatchObject({
257+error: expect.stringContaining("type does not support timeoutMs"),
258+});
259+expect(chromeMcpMocks.fillChromeMcpElement).not.toHaveBeenCalled();
260+});
261+241262it("supports glob URL waits for existing-session profiles", async () => {
242263chromeMcpMocks.evaluateChromeMcpScript.mockReset();
243264chromeMcpMocks.evaluateChromeMcpScript.mockImplementation(
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。