proxyquire-stub-lambda-class
stub lambda aws class to proxyquire
Support
method | support | specification |
---|---|---|
invoke | true | not return AWS.Request instance, only can be called with cb or promise property |
Usage
const proxyquire = require('proxyquire')
const stubToLambda = require('proxyquire-stub-lambda-class')
const paramsToExpect = {
FunctionName:'FunctionName',
Qualifier:'$LATEST',
InvocationType:'RequestResponse',
Payload: 'string',
LogType: 'Tail'
}
const PayloadToReturn = {}
const options = {
error: 'error to return'
FunctionError: 'FunctionError',
LogResult: 'base64 string',
StatusCode : 'http code status'
}
const moduleUsingLambdaAWSClass = proxyquire('path/to/module',{
'aws-sdk':{
Lambda: stubToLambda(paramsToExpect, PayloadToReturn, options)
// you can extend the class to your class
}
moduleUsingLambdaAWSClass //any call to lambda is mocked
// Class example
lambda = new StubToLambda(paramsToExpect, PayloadToReturn, options)
lambda.invoke(params, (err, data)=>{/***callback***/}) // or
lambda.invoke(params).promise() // return a promise
// if params is not equal to paramsToExpect throw a error
})
stubToLambda(paramsToExpect, PayloadToReturn[, options])-> Lambda Class
options = {
error,
FunctionError,
LogResult,
StatusCode
}