@@ -85,19 +85,38 @@ describe('AxiosHeaders', () => {
8585 } ) ;
8686
8787 const runIfNode18OrHigher = nodeMajorVersion >= 18 ? it : it . skip ;
88- runIfNode18OrHigher ( 'should support setting multiple header values from an iterable source' , ( ) => {
88+ runIfNode18OrHigher (
89+ 'should support setting multiple header values from an iterable source' ,
90+ ( ) => {
91+ const headers = new AxiosHeaders ( ) ;
92+ const nativeHeaders = new Headers ( ) ;
93+
94+ nativeHeaders . append ( 'set-cookie' , 'foo' ) ;
95+ nativeHeaders . append ( 'set-cookie' , 'bar' ) ;
96+ nativeHeaders . append ( 'set-cookie' , 'baz' ) ;
97+ nativeHeaders . append ( 'y' , 'qux' ) ;
98+
99+ headers . set ( nativeHeaders ) ;
100+
101+ assert . deepStrictEqual ( headers . get ( 'set-cookie' ) , [ 'foo' , 'bar' , 'baz' ] ) ;
102+ assert . strictEqual ( headers . get ( 'y' ) , 'qux' ) ;
103+ }
104+ ) ;
105+
106+ it ( 'should throw on CRLF in header value' , ( ) => {
89107 const headers = new AxiosHeaders ( ) ;
90- const nativeHeaders = new Headers ( ) ;
91108
92- nativeHeaders . append ( 'set-cookie' , 'foo' ) ;
93- nativeHeaders . append ( 'set-cookie ', 'bar ' ) ;
94- nativeHeaders . append ( 'set-cookie' , 'baz' ) ;
95- nativeHeaders . append ( 'y' , 'qux' ) ;
109+ assert . throws ( ( ) => {
110+ headers . set ( 'x-test ', 'safe\r\nInjected: true ' ) ;
111+ } , / I n v a l i d c h a r a c t e r i n h e a d e r c o n t e n t / ) ;
112+ } ) ;
96113
97- headers . set ( nativeHeaders ) ;
114+ it ( 'should throw on CRLF in any array header value' , ( ) => {
115+ const headers = new AxiosHeaders ( ) ;
98116
99- assert . deepStrictEqual ( headers . get ( 'set-cookie' ) , [ 'foo' , 'bar' , 'baz' ] ) ;
100- assert . strictEqual ( headers . get ( 'y' ) , 'qux' ) ;
117+ assert . throws ( ( ) => {
118+ headers . set ( 'set-cookie' , [ 'safe=1' , 'unsafe=1\nInjected: true' ] ) ;
119+ } , / I n v a l i d c h a r a c t e r i n h e a d e r c o n t e n t / ) ;
101120 } ) ;
102121 } ) ;
103122
0 commit comments