@@ -301,7 +301,12 @@ describe('RouterExecutionContext', () => {
301301 sinon . stub ( contextCreator , 'reflectResponseHeaders' ) . returns ( [ ] ) ;
302302 sinon . stub ( contextCreator , 'reflectRenderTemplate' ) . returns ( template ) ;
303303
304- const handler = contextCreator . createHandleResponseFn ( null , true , 200 ) ;
304+ const handler = contextCreator . createHandleResponseFn (
305+ null ,
306+ true ,
307+ undefined ,
308+ 200 ,
309+ ) ;
305310 await handler ( value , response ) ;
306311
307312 expect ( response . render . calledWith ( template , value ) ) . to . be . true ;
@@ -315,11 +320,67 @@ describe('RouterExecutionContext', () => {
315320 sinon . stub ( contextCreator , 'reflectResponseHeaders' ) . returns ( [ ] ) ;
316321 sinon . stub ( contextCreator , 'reflectRenderTemplate' ) . returns ( undefined ) ;
317322
318- const handler = contextCreator . createHandleResponseFn ( null , true , 200 ) ;
323+ const handler = contextCreator . createHandleResponseFn (
324+ null ,
325+ true ,
326+ undefined ,
327+ 200 ,
328+ ) ;
319329 handler ( result , response ) ;
320330
321331 expect ( response . render . called ) . to . be . false ;
322332 } ) ;
323333 } ) ;
334+ describe ( 'when "redirectResponse" is present' , ( ) => {
335+ beforeEach ( ( ) => {
336+ sinon
337+ . stub ( adapter , 'redirect' )
338+ . callsFake ( ( response , statusCode : number , url : string ) => {
339+ return response . redirect ( statusCode , url ) ;
340+ } ) ;
341+ } ) ;
342+ it ( 'should call "res.redirect()" with expected args' , async ( ) => {
343+ const redirectResponse = {
344+ url : 'http://test.com' ,
345+ statusCode : 302 ,
346+ } ;
347+ const response = { redirect : sinon . spy ( ) } ;
348+
349+ const handler = contextCreator . createHandleResponseFn (
350+ ( ) => { } ,
351+ true ,
352+ redirectResponse ,
353+ 200 ,
354+ ) ;
355+ await handler ( redirectResponse , response ) ;
356+
357+ expect (
358+ response . redirect . calledWith (
359+ redirectResponse . statusCode ,
360+ redirectResponse . url ,
361+ ) ,
362+ ) . to . be . true ;
363+ } ) ;
364+ } ) ;
365+
366+ describe ( 'when "redirectResponse" is undefined' , ( ) => {
367+ it ( 'should not call "res.render()"' , ( ) => {
368+ const result = Promise . resolve ( 'test' ) ;
369+ const response = { redirect : sinon . spy ( ) } ;
370+
371+ sinon . stub ( contextCreator , 'reflectResponseHeaders' ) . returns ( [ ] ) ;
372+ sinon . stub ( contextCreator , 'reflectRenderTemplate' ) . returns ( undefined ) ;
373+
374+ const handler = contextCreator . createHandleResponseFn (
375+ null ,
376+ true ,
377+ undefined ,
378+ 200 ,
379+ ) ;
380+ handler ( result , response ) ;
381+
382+ expect ( response . redirect . called ) . to . be . false ;
383+ } ) ;
384+ } ) ;
324385 } ) ;
325386} ) ;
0 commit comments