@@ -1184,6 +1184,59 @@ describe("client", () => {
1184
1184
expect ( ( ) => client . GET ( "/blogposts" ) ) . not . toThrow ( ) ;
1185
1185
expect ( called ) . toBe ( false ) ;
1186
1186
} ) ;
1187
+
1188
+ it ( "preserves (and can safely add) headers" , async ( ) => {
1189
+ const { getRequest } = useMockRequestHandler ( {
1190
+ baseUrl,
1191
+ method : "get" ,
1192
+ path : "/blogposts" ,
1193
+ status : 200 ,
1194
+ body : { success : true } ,
1195
+ } ) ;
1196
+
1197
+ const client = createClient < paths > ( {
1198
+ baseUrl,
1199
+ headers : {
1200
+ createClient : "exists" ,
1201
+ } ,
1202
+ } ) ;
1203
+
1204
+ client . use (
1205
+ {
1206
+ onRequest ( { request } ) {
1207
+ // assert headers are kept in middleware onRequest
1208
+ expect ( request . headers . get ( "createClient" ) ) . toBe ( "exists" ) ;
1209
+ expect ( request . headers . get ( "onFetch" ) ) . toBe ( "exists" ) ;
1210
+ request . headers . set ( "onRequest" , "exists" ) ;
1211
+ return request ;
1212
+ } ,
1213
+ onResponse ( { request } ) {
1214
+ // assert headers are (still) kept in onResponse
1215
+ expect ( request . headers . get ( "createClient" ) ) . toBe ( "exists" ) ;
1216
+ expect ( request . headers . get ( "onFetch" ) ) . toBe ( "exists" ) ;
1217
+ expect ( request . headers . get ( "onRequest" ) ) . toBe ( "exists" ) ;
1218
+ } ,
1219
+ } ,
1220
+ {
1221
+ onRequest ( { request } ) {
1222
+ // also assert a 2nd middleware (that doesn’t modify request) still sees headers
1223
+ expect ( request . headers . get ( "createClient" ) ) . toBe ( "exists" ) ;
1224
+ expect ( request . headers . get ( "onFetch" ) ) . toBe ( "exists" ) ;
1225
+ expect ( request . headers . get ( "onRequest" ) ) . toBe ( "exists" ) ;
1226
+ } ,
1227
+ } ,
1228
+ ) ;
1229
+
1230
+ await client . GET ( "/blogposts" , {
1231
+ headers : { onFetch : "exists" } ,
1232
+ } ) ;
1233
+
1234
+ // assert server received them in final request
1235
+ const req = getRequest ( ) ;
1236
+ expect ( req . headers . get ( "createClient" ) ) . toBe ( "exists" ) ;
1237
+ expect ( req . headers . get ( "onFetch" ) ) . toBe ( "exists" ) ;
1238
+ expect ( req . headers . get ( "onRequest" ) ) . toBe ( "exists" ) ;
1239
+ } ) ;
1187
1240
} ) ;
1188
1241
} ) ;
1189
1242
0 commit comments