File tree Expand file tree Collapse file tree 3 files changed +30
-1
lines changed Expand file tree Collapse file tree 3 files changed +30
-1
lines changed Original file line number Diff line number Diff line change @@ -37,7 +37,10 @@ export const mapResponse = (
3737 return new Response ( JSON . stringify ( response ) , set as any )
3838
3939 case 'ElysiaFile' :
40- return handleFile ( ( response as ElysiaFile ) . value as File )
40+ return handleFile (
41+ ( response as ElysiaFile ) . value as File ,
42+ set as any
43+ )
4144
4245 case 'File' :
4346 return handleFile ( response as File , set as any )
Original file line number Diff line number Diff line change @@ -159,6 +159,7 @@ export const createStreamHandler =
159159 | IteratorResult < unknown >
160160 | undefined
161161
162+ if ( set ) handleSet ( set )
162163 if ( init instanceof Promise ) init = await init
163164
164165 // Generator or ReadableStream is returned from a generator function
Original file line number Diff line number Diff line change @@ -96,6 +96,31 @@ describe('Stream', () => {
9696 expect ( response ) . toBe ( 'ab' )
9797 } )
9898
99+ it ( 'include multiple set-cookie headers in streamed response' , async ( ) => {
100+ const app = new Elysia ( ) . get ( '/' , async function * ( context ) {
101+ context . cookie [ 'cookie1' ] . set ( {
102+ value : 'value1'
103+ } )
104+ context . cookie [ 'cookie2' ] . set ( {
105+ value : 'value2'
106+ } )
107+
108+ yield sse ( { event : 'test' , data : { count : 1 } } )
109+ yield sse ( { event : 'test' , data : { count : 2 } } )
110+ } )
111+
112+ const response = await app . handle ( req ( '/' ) )
113+
114+ const cookieHeaders = response . headers . getSetCookie ( )
115+ expect ( cookieHeaders ) . toHaveLength ( 2 )
116+ expect ( cookieHeaders . some ( ( h ) => h . includes ( 'cookie1=value1' ) ) ) . toBe (
117+ true
118+ )
119+ expect ( cookieHeaders . some ( ( h ) => h . includes ( 'cookie2=value2' ) ) ) . toBe (
120+ true
121+ )
122+ } )
123+
99124 it ( 'mutate set before yield is called' , async ( ) => {
100125 const expected = [ 'a' , 'b' , 'c' ]
101126
You can’t perform that action at this time.
0 commit comments