@@ -60,6 +60,8 @@ describe("SSEClientTransport", () => {
6060 afterEach ( async ( ) => {
6161 await transport . close ( ) ;
6262 await server . close ( ) ;
63+
64+ jest . clearAllMocks ( ) ;
6365 } ) ;
6466
6567 describe ( "connection handling" , ( ) => {
@@ -73,8 +75,7 @@ describe("SSEClientTransport", () => {
7375
7476 it ( "rejects if server returns non-200 status" , async ( ) => {
7577 // Create a server that returns 403
76- server . close ( ) ;
77- await new Promise ( ( resolve ) => server . on ( "close" , resolve ) ) ;
78+ await server . close ( ) ;
7879
7980 server = createServer ( ( req , res ) => {
8081 res . writeHead ( 403 ) ;
@@ -252,37 +253,45 @@ describe("SSEClientTransport", () => {
252253
253254 await transport . start ( ) ;
254255
255- // Mock fetch for the message sending test
256- global . fetch = jest . fn ( ) . mockResolvedValue ( {
257- ok : true ,
258- } ) ;
259-
260- const message : JSONRPCMessage = {
261- jsonrpc : "2.0" ,
262- id : "1" ,
263- method : "test" ,
264- params : { } ,
265- } ;
266-
267- await transport . send ( message ) ;
256+ // Store original fetch
257+ const originalFetch = global . fetch ;
268258
269- // Verify fetch was called with correct headers
270- expect ( global . fetch ) . toHaveBeenCalledWith (
271- expect . any ( URL ) ,
272- expect . objectContaining ( {
273- headers : expect . any ( Headers ) ,
274- } ) ,
275- ) ;
259+ try {
260+ // Mock fetch for the message sending test
261+ global . fetch = jest . fn ( ) . mockResolvedValue ( {
262+ ok : true ,
263+ } ) ;
276264
277- const calledHeaders = ( global . fetch as jest . Mock ) . mock . calls [ 0 ] [ 1 ]
278- . headers ;
279- expect ( calledHeaders . get ( "Authorization" ) ) . toBe (
280- customHeaders . Authorization ,
281- ) ;
282- expect ( calledHeaders . get ( "X-Custom-Header" ) ) . toBe (
283- customHeaders [ "X-Custom-Header" ] ,
284- ) ;
285- expect ( calledHeaders . get ( "content-type" ) ) . toBe ( "application/json" ) ;
265+ const message : JSONRPCMessage = {
266+ jsonrpc : "2.0" ,
267+ id : "1" ,
268+ method : "test" ,
269+ params : { } ,
270+ } ;
271+
272+ await transport . send ( message ) ;
273+
274+ // Verify fetch was called with correct headers
275+ expect ( global . fetch ) . toHaveBeenCalledWith (
276+ expect . any ( URL ) ,
277+ expect . objectContaining ( {
278+ headers : expect . any ( Headers ) ,
279+ } ) ,
280+ ) ;
281+
282+ const calledHeaders = ( global . fetch as jest . Mock ) . mock . calls [ 0 ] [ 1 ]
283+ . headers ;
284+ expect ( calledHeaders . get ( "Authorization" ) ) . toBe (
285+ customHeaders . Authorization ,
286+ ) ;
287+ expect ( calledHeaders . get ( "X-Custom-Header" ) ) . toBe (
288+ customHeaders [ "X-Custom-Header" ] ,
289+ ) ;
290+ expect ( calledHeaders . get ( "content-type" ) ) . toBe ( "application/json" ) ;
291+ } finally {
292+ // Restore original fetch
293+ global . fetch = originalFetch ;
294+ }
286295 } ) ;
287296 } ) ;
288297
@@ -345,8 +354,7 @@ describe("SSEClientTransport", () => {
345354
346355 it ( "attempts auth flow on 401 during SSE connection" , async ( ) => {
347356 // Create server that returns 401s
348- server . close ( ) ;
349- await new Promise ( resolve => server . on ( "close" , resolve ) ) ;
357+ await server . close ( ) ;
350358
351359 server = createServer ( ( req , res ) => {
352360 lastServerRequest = req ;
@@ -375,8 +383,7 @@ describe("SSEClientTransport", () => {
375383
376384 it ( "attempts auth flow on 401 during POST request" , async ( ) => {
377385 // Create server that accepts SSE but returns 401 on POST
378- server . close ( ) ;
379- await new Promise ( resolve => server . on ( "close" , resolve ) ) ;
386+ await server . close ( ) ;
380387
381388 server = createServer ( ( req , res ) => {
382389 lastServerRequest = req ;
0 commit comments