@@ -14,7 +14,7 @@ function createInvMock () {
14
14
return { inv : { _project : { cwd : process . cwd ( ) , preferences : { } } } }
15
15
}
16
16
function createLogMock ( ) {
17
- return { status : ( ) => ( { } ) }
17
+ return { status : ( ) => ( { } ) , warn : ( ) => ( { } ) }
18
18
}
19
19
function createEnquirerMock ( ) {
20
20
return { prompt : async ( ) => ( { } ) }
@@ -80,4 +80,18 @@ test('Should prompt for lambda selection and invoke matching lambda', async t =>
80
80
await handler ( 'i' )
81
81
const invoked = intercept ( )
82
82
t . equal ( invoked . length , 1 , 'lambda invoke called' )
83
+ t . equal ( invoked [ 0 ] . args [ 0 ] . pragma , 'events' , 'correct pragma invoked' )
84
+ t . equal ( invoked [ 0 ] . args [ 0 ] . name , 'test-event' , 'correct lambda name invoked' )
85
+ } )
86
+
87
+ test ( 'Should be able to recover from exception being raised by invoked lambda' , async t => {
88
+ let mocks = createMocks ( )
89
+ t . capture ( mocks . enquirer , 'prompt' , async ( ) => ( { lambda : '@events test-event' } ) )
90
+ t . capture ( mocks , 'invoke' , async ( ) => { throw new Error ( 'boom' ) } )
91
+ let logcept = t . capture ( mocks . logger , 'warn' )
92
+ mocks . invMock . inv [ 'events' ] = [ { name : 'test-event' } ]
93
+ let handler = mockHandlerFactory ( mocks ) ( mocks . logger , pragmas , mocks . invMock . inv , mocks . invoke )
94
+ await handler ( 'i' )
95
+ let logged = logcept ( )
96
+ t . match ( logged [ 0 ] . args [ 0 ] . message , / b o o m / , 'lambda exception gets logged as warning' )
83
97
} )
0 commit comments