Lambda handlers with support for callbacks use the typical Node.js asynchronous signature:
// handler.js
exports.handler = function( event, context, callback ) {
// your logic here
callback( null, 'success!' );
}The following example shows a simple case for validating that the Lambda handler using Mocha:
const LambdaTester = require( 'lambda-tester' );
// Lambda handler
const myHandler = require( '../handler' ).handler;
describe( 'handler', function() {
it( 'test success', function() {
return LambdaTester( myHandler )
.event( { name: 'Fred' } )
.expectResult();
});
});Performing the same test using the Jasmine framework would be as follows:
const LambdaTester = require( 'lambda-tester' );
// Lambda handler
const myHandler = require( '../handler' ).handler;
describe( 'handler', function() {
it( 'test success', function( done ) {
return LambdaTester( myHandler )
.event( { name: 'Fred' } )
.expectResult()
.verify( done );
});
});Note: that when testing using Jasmine, make sure you call verify().
Please note that you must return the LambdaTester back to the framework since lambda-tester is asynchronous and uses Promises.