@@ -298,6 +298,7 @@ describe('RouterExecutionContext', () => {
298298 const value = 'test' ;
299299 const response = { render : sinon . spy ( ) } ;
300300
301+ sinon . stub ( contextCreator , 'reflectRedirect' ) . returns ( undefined ) ;
301302 sinon . stub ( contextCreator , 'reflectResponseHeaders' ) . returns ( [ ] ) ;
302303 sinon . stub ( contextCreator , 'reflectRenderTemplate' ) . returns ( template ) ;
303304
@@ -312,6 +313,7 @@ describe('RouterExecutionContext', () => {
312313 const result = Promise . resolve ( 'test' ) ;
313314 const response = { render : sinon . spy ( ) } ;
314315
316+ sinon . stub ( contextCreator , 'reflectRedirect' ) . returns ( undefined ) ;
315317 sinon . stub ( contextCreator , 'reflectResponseHeaders' ) . returns ( [ ] ) ;
316318 sinon . stub ( contextCreator , 'reflectRenderTemplate' ) . returns ( undefined ) ;
317319
@@ -321,5 +323,49 @@ describe('RouterExecutionContext', () => {
321323 expect ( response . render . called ) . to . be . false ;
322324 } ) ;
323325 } ) ;
326+ describe ( 'when "redirectResponse" is present' , ( ) => {
327+ beforeEach ( ( ) => {
328+ sinon
329+ . stub ( adapter , 'redirect' )
330+ . callsFake ( ( response , statusCode : number , url : string ) => {
331+ return response . redirect ( statusCode , url ) ;
332+ } ) ;
333+ } ) ;
334+ it ( 'should call "res.redirect()" with expected args' , async ( ) => {
335+ const redirectResponse = {
336+ url : 'http://test.com' ,
337+ statusCode : 302 ,
338+ } ;
339+ const response = { redirect : sinon . spy ( ) } ;
340+
341+ sinon . stub ( contextCreator , 'reflectRedirect' ) . returns ( redirectResponse ) ;
342+
343+ const handler = contextCreator . createHandleResponseFn ( null , true , 200 ) ;
344+ await handler ( redirectResponse , response ) ;
345+
346+ expect (
347+ response . redirect . calledWith (
348+ redirectResponse . statusCode ,
349+ redirectResponse . url ,
350+ ) ,
351+ ) . to . be . true ;
352+ } ) ;
353+ } ) ;
354+
355+ describe ( 'when "redirectResponse" is undefined' , ( ) => {
356+ it ( 'should not call "res.render()"' , ( ) => {
357+ const result = Promise . resolve ( 'test' ) ;
358+ const response = { redirect : sinon . spy ( ) } ;
359+
360+ sinon . stub ( contextCreator , 'reflectRedirect' ) . returns ( undefined ) ;
361+ sinon . stub ( contextCreator , 'reflectResponseHeaders' ) . returns ( [ ] ) ;
362+ sinon . stub ( contextCreator , 'reflectRenderTemplate' ) . returns ( undefined ) ;
363+
364+ const handler = contextCreator . createHandleResponseFn ( null , true , 200 ) ;
365+ handler ( result , response ) ;
366+
367+ expect ( response . redirect . called ) . to . be . false ;
368+ } ) ;
369+ } ) ;
324370 } ) ;
325371} ) ;
0 commit comments