File tree Expand file tree Collapse file tree 2 files changed +43
-0
lines changed Expand file tree Collapse file tree 2 files changed +43
-0
lines changed Original file line number Diff line number Diff line change @@ -306,6 +306,21 @@ describe('AWSLambda', () => {
306306        expect ( Sentry . flush ) . toBeCalled ( ) ; 
307307      } 
308308    } ) ; 
309+ 
310+     test ( 'should not throw when flush rejects' ,  async  ( )  =>  { 
311+       const  handler : Handler  =  async  ( )  =>  { 
312+         // Friendly handler with no errors :) 
313+         return  'some string' ; 
314+       } ; 
315+ 
316+       const  wrappedHandler  =  wrapHandler ( handler ) ; 
317+ 
318+       jest . spyOn ( Sentry ,  'flush' ) . mockImplementationOnce ( async  ( )  =>  { 
319+         throw  new  Error ( ) ; 
320+       } ) ; 
321+ 
322+       await  expect ( wrappedHandler ( fakeEvent ,  fakeContext ,  fakeCallback ) ) . resolves . toBe ( 'some string' ) ; 
323+     } ) ; 
309324  } ) ; 
310325
311326  describe ( 'wrapHandler() on async handler with a callback method (aka incorrect usage)' ,  ( )  =>  { 
Original file line number Diff line number Diff line change @@ -148,6 +148,34 @@ describe('GCPFunction', () => {
148148      expect ( Sentry . fakeTransaction . finish ) . toBeCalled ( ) ; 
149149      expect ( Sentry . flush ) . toBeCalled ( ) ; 
150150    } ) ; 
151+ 
152+     test ( 'should not throw when flush rejects' ,  async  ( )  =>  { 
153+       expect . assertions ( 2 ) ; 
154+ 
155+       const  handler : HttpFunction  =  async  ( _req ,  res )  =>  { 
156+         res . statusCode  =  200 ; 
157+         res . end ( ) ; 
158+       } ; 
159+ 
160+       const  wrappedHandler  =  wrapHttpFunction ( handler ) ; 
161+ 
162+       const  request  =  { 
163+         method : 'POST' , 
164+         url : '/path?q=query' , 
165+         headers : {  host : 'hostname' ,  'content-type' : 'application/json'  } , 
166+         body : {  foo : 'bar'  } , 
167+       }  as  Request ; 
168+ 
169+       const  mockEnd  =  jest . fn ( ) ; 
170+       const  response  =  {  end : mockEnd  }  as  unknown  as  Response ; 
171+ 
172+       jest . spyOn ( Sentry ,  'flush' ) . mockImplementationOnce ( async  ( )  =>  { 
173+         throw  new  Error ( ) ; 
174+       } ) ; 
175+ 
176+       await  expect ( wrappedHandler ( request ,  response ) ) . resolves . toBeUndefined ( ) ; 
177+       expect ( mockEnd ) . toHaveBeenCalledTimes ( 1 ) ; 
178+     } ) ; 
151179  } ) ; 
152180
153181  test ( 'wrapHttpFunction request data' ,  async  ( )  =>  { 
 
 
   
 
     
   
   
          
    
    
     
    
      
     
     
    You can’t perform that action at this time.
  
 
    
  
    
      
        
     
       
      
     
   
 
    
    
  
 
  
 
     
    
0 commit comments