From 162b9e5863091fe5410d8e8d3bf037379d5ccf4d Mon Sep 17 00:00:00 2001 From: morluto <76467478+morluto@users.noreply.github.com> Date: Sat, 24 Oct 2026 01:57:01 +0800 Subject: [PATCH] test: share Frida SDK connection setup within fixtures --- tests/boundary/mcp/fridaMcp.test.ts | 47 +++++++++++++++++------------ 1 file changed, 28 insertions(+), 19 deletions(-) diff --git a/tests/boundary/mcp/fridaMcp.test.ts b/tests/boundary/mcp/fridaMcp.test.ts index ec5e79ca34..6eb34fdc3d 100644 --- a/tests/boundary/mcp/fridaMcp.test.ts +++ b/tests/boundary/mcp/fridaMcp.test.ts @@ -94,6 +94,24 @@ const createFridaTestProvider = ( ...overrides, }); +const connectFridaTestClient = async ( + server: ReturnType, + session: ReturnType, + name: string, +): Promise => { + const client = new Client({ name, version: "1" }); + onTestFinished(async () => { + await client.close(); + await server.close(); + await session.close(); + }); + const [clientTransport, serverTransport] = + InMemoryTransport.createLinkedPair(); + await server.connect(serverTransport); + await client.connect(clientTransport); + return client; +}; + it("delivers Frida status summaries with complete retained Evidence for both truncation states", async () => { const id = "00000000-0000-4000-8000-000000000001"; const messages = [ @@ -129,15 +147,11 @@ it("delivers Frida status summaries with complete retained Evidence for both tru }), }, ); - const client = new Client({ name: "frida-status-summary", version: "1" }); - onTestFinished(async () => { - await client.close(); - await server.close(); - await session.close(); - }); - const [ct, st] = InMemoryTransport.createLinkedPair(); - await server.connect(st); - await client.connect(ct); + const client = await connectFridaTestClient( + server, + session, + "frida-status-summary", + ); const tools = (await client.listTools()).tools; const tool = tools.find((t) => t.name === "frida_session_status"); if (!tool?.outputSchema) throw new Error("Missing Frida status schema"); @@ -350,16 +364,11 @@ it("advertises Frida MCP schemas and keeps remote credentials out of results", a fridaInstrumentation: createFridaTestProvider(), }, ); - const client = new Client({ name: "frida-contract", version: "1" }); - onTestFinished(async () => { - await client.close(); - await server.close(); - await session.close(); - }); - const [clientTransport, serverTransport] = - InMemoryTransport.createLinkedPair(); - await server.connect(serverTransport); - await client.connect(clientTransport); + const client = await connectFridaTestClient( + server, + session, + "frida-contract", + ); const tools = (await client.listTools()).tools; const advertised = tools.find((tool) => tool.name === "list_frida_devices");