File tree Expand file tree Collapse file tree 2 files changed +28
-3
lines changed Expand file tree Collapse file tree 2 files changed +28
-3
lines changed Original file line number Diff line number Diff line change @@ -502,6 +502,30 @@ describe("StreamableHTTPClientTransport", () => {
502
502
expect ( global . fetch ) . toHaveBeenCalledTimes ( 2 ) ;
503
503
} ) ;
504
504
505
+ it ( "should always include requestInit options for initial connection in SSE" , async ( ) => {
506
+ const requestInit : RequestInit = {
507
+ credentials : 'include'
508
+ } ;
509
+
510
+ transport = new StreamableHTTPClientTransport ( new URL ( "http://localhost:1234/mcp" ) , {
511
+ requestInit : requestInit
512
+ } ) ;
513
+
514
+ let actualReqInit : RequestInit = { } ;
515
+
516
+ ( ( global . fetch as jest . Mock ) ) . mockImplementation (
517
+ async ( _url , reqInit ) => {
518
+ actualReqInit = reqInit ;
519
+ return new Response ( null , { status : 200 , headers : { "content-type" : "text/event-stream" } } ) ;
520
+ }
521
+ ) ;
522
+
523
+ await transport . start ( ) ;
524
+
525
+ await transport [ "_startOrAuthSse" ] ( { } ) ;
526
+ expect ( actualReqInit . credentials ) . toBe ( "include" ) ;
527
+ } ) ;
528
+
505
529
it ( "should always send specified custom headers (Headers class)" , async ( ) => {
506
530
const requestInit = {
507
531
headers : new Headers ( {
Original file line number Diff line number Diff line change @@ -208,6 +208,7 @@ export class StreamableHTTPClientTransport implements Transport {
208
208
}
209
209
210
210
const response = await ( this . _fetch ?? fetch ) ( this . _url , {
211
+ ...this . _requestInit ,
211
212
method : "GET" ,
212
213
headers,
213
214
signal : this . _abortController ?. signal ,
@@ -301,7 +302,7 @@ export class StreamableHTTPClientTransport implements Transport {
301
302
}
302
303
303
304
private _handleSseStream (
304
- stream : ReadableStream < Uint8Array > | null ,
305
+ stream : ReadableStream < Uint8Array > | null ,
305
306
options : StartSSEOptions ,
306
307
isReconnectable : boolean ,
307
308
) : void {
@@ -352,8 +353,8 @@ export class StreamableHTTPClientTransport implements Transport {
352
353
353
354
// Attempt to reconnect if the stream disconnects unexpectedly and we aren't closing
354
355
if (
355
- isReconnectable &&
356
- this . _abortController &&
356
+ isReconnectable &&
357
+ this . _abortController &&
357
358
! this . _abortController . signal . aborted
358
359
) {
359
360
// Use the exponential backoff reconnection strategy
You can’t perform that action at this time.
0 commit comments