@@ -132,4 +132,39 @@ describe('parse', () => {
132132
133133 expect ( mockVerify ) . toHaveBeenCalledWith ( new URL ( urlStr ) ) ;
134134 } ) ;
135+
136+ it ( "removes the SIG_PARAMS_PARAM from the handler's query parameters" , async ( ) => {
137+ mockRoutes . set ( '/test' , { handler : mockHandler } as unknown as Route ) ;
138+ mockVerify . mockResolvedValue ( VALID ) ;
139+
140+ const urlStr1 = 'https://example.com/test?sig=bar&sig_params=' ;
141+ await parse ( new URL ( urlStr1 ) ) ;
142+ // `sig_params` should be removed from the handler's searchParams
143+ expect ( mockHandler ) . toHaveBeenCalledWith ( new URLSearchParams ( ) ) ;
144+
145+ const urlStr2 =
146+ 'https://example.com/test?sig=bar&sig_params=value&value=123' ;
147+ await parse ( new URL ( urlStr2 ) ) ;
148+ // `sig_params` should be removed from the handler's searchParams, `value`
149+ // should remain because it is listed in `sig_params`
150+ expect ( mockHandler ) . toHaveBeenCalledWith (
151+ new URLSearchParams ( [ [ 'value' , '123' ] ] ) ,
152+ ) ;
153+
154+ const urlStr3 = 'https://example.com/test?sig=bar&sig_params=&value=123' ;
155+ await parse ( new URL ( urlStr3 ) ) ;
156+ // `sig_params` should be removed from the handler's searchParams, `value`
157+ // should also be removed because it is not in `sig_params`
158+ expect ( mockHandler ) . toHaveBeenCalledWith ( new URLSearchParams ( ) ) ;
159+
160+ const urlStr4 =
161+ 'https://example.com/test?sig=bar&sig_params=value&value=123&foo=bar' ;
162+ await parse ( new URL ( urlStr4 ) ) ;
163+ // `sig_params` should be removed from the handler's searchParams, `value`
164+ // should remain because it is listed in `sig_params`, `foo` should be removed
165+ // because it is not listed in `sig_params`
166+ expect ( mockHandler ) . toHaveBeenCalledWith (
167+ new URLSearchParams ( [ [ 'value' , '123' ] ] ) ,
168+ ) ;
169+ } ) ;
135170} ) ;
0 commit comments