Skip to content

Commit 2b1c01f

Browse files
committed
test(gateway): bind auth-free websocket harness to loopback
1 parent a12e302 commit 2b1c01f

2 files changed

Lines changed: 24 additions & 7 deletions

File tree

src/gateway/server.e2e-ws-harness.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ export async function startGatewayServerHarness(): Promise<GatewayServerHarness>
2525
const port = await getFreePort();
2626
const server = await startGatewayServer(port, {
2727
auth: { mode: "none" },
28+
bind: "loopback",
2829
controlUiEnabled: false,
2930
});
3031

src/gateway/test/server-sessions.test-helpers.ts

Lines changed: 23 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -243,8 +243,8 @@ vi.mock("../../agents/pi-bundle-mcp-tools.js", () => ({
243243
export function setupGatewaySessionsTestHarness() {
244244
installGatewayTestHooks({ scope: "suite" });
245245

246-
let harness: GatewayServerHarness;
247-
let sharedSessionStoreDir: string;
246+
let harness: GatewayServerHarness | undefined;
247+
let sharedSessionStoreDir: string | undefined;
248248
let sessionStoreCaseSeq = 0;
249249

250250
beforeAll(async () => {
@@ -253,8 +253,10 @@ export function setupGatewaySessionsTestHarness() {
253253
});
254254

255255
afterAll(async () => {
256-
await harness.close();
257-
await fs.rm(sharedSessionStoreDir, { recursive: true, force: true });
256+
await harness?.close();
257+
if (sharedSessionStoreDir) {
258+
await fs.rm(sharedSessionStoreDir, { recursive: true, force: true });
259+
}
258260
});
259261

260262
beforeEach(async () => {
@@ -293,11 +295,25 @@ export function setupGatewaySessionsTestHarness() {
293295
bundleMcpRuntimeMocks.disposeSessionMcpRuntime.mockResolvedValue(undefined);
294296
});
295297

298+
const requireHarness = () => {
299+
if (!harness) {
300+
throw new Error("Gateway sessions test harness was not started");
301+
}
302+
return harness;
303+
};
304+
305+
const requireSharedSessionStoreDir = () => {
306+
if (!sharedSessionStoreDir) {
307+
throw new Error("Gateway sessions shared session store dir was not created");
308+
}
309+
return sharedSessionStoreDir;
310+
};
311+
296312
const openClient = async (opts?: Parameters<typeof connectOk>[1]) =>
297-
await harness.openClient(opts);
313+
await requireHarness().openClient(opts);
298314

299315
async function createSessionStoreDir() {
300-
const dir = path.join(sharedSessionStoreDir, `case-${sessionStoreCaseSeq++}`);
316+
const dir = path.join(requireSharedSessionStoreDir(), `case-${sessionStoreCaseSeq++}`);
301317
await fs.mkdir(dir, { recursive: true });
302318
const storePath = path.join(dir, "sessions.json");
303319
testState.sessionStorePath = storePath;
@@ -317,7 +333,7 @@ export function setupGatewaySessionsTestHarness() {
317333

318334
return {
319335
createSessionStoreDir,
320-
getHarness: () => harness,
336+
getHarness: requireHarness,
321337
openClient,
322338
seedActiveMainSession,
323339
};

0 commit comments

Comments
 (0)