@@ -243,8 +243,8 @@ vi.mock("../../agents/pi-bundle-mcp-tools.js", () => ({
243243export 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