A small library that includes detailed mocks of AWS Lambda event sources.
Useful for unit testing your Lambda functions.
Supported Event Sources are:
- Alexa Skill
- Alexa Smart Home
- API Gateway
- CloudWatch
- CloudWatch Log
- Cognito Pool
- DynamoDB
- IoT
- S3
- Scheduled
- SNS
- SQS
- WebSocket
The library uses default event source templates and merges them with any overwrite you provide.
Check out the JSON template files to learn more about the data structure of each event source.
npm i @gilbarbara/aws-events-mock
import createEvent from "@gilbarbara/aws-events-mock"
const mocked = createEvent(
"aws:sns",
{
Records: [{
Sns: {
Message: "trigger-email"
}
}]
});
import createEvent from "@gilbarbara/aws-events-mock"
const event = createEvent(
"aws:apiGateway",
{
body: {
first_name: "Sam",
last_name: "Smith"
}
});
import createEvent from "@gilbarbara/aws-events-mock"
const event = createEvent(
"aws:s3",
{
Records: [{
eventName: "ObjectCreated:Put",
s3: {
bucket: {
name: "my-bucket-name"
},
object: {
key: "object-key"
}
}
}]
});
import createEvent from "@gilbarbara/aws-events-mock"
const event = createEvent(
"aws:scheduled",
{
region: "us-west-2"
});
import createEvent from "@gilbarbara/aws-events-mock"
const event = createEvent(
"aws:kinesis",
{
data: new Buffer("this is test data").toString("base64")
});
import createEvent from "@gilbarbara/aws-events-mock"
const event = createEvent(
"aws:dynamo",
{
Records: [
{
eventID: "1",
eventVersion: "1.0",
dynamodb: {
Keys: {
Id: {
N: "101"
}
},
NewImage: {
Message: {
S: "New item!"
},
Id: {
N: "101"
}
},
StreamViewType: "NEW_AND_OLD_IMAGES",
SequenceNumber: "111",
SizeBytes: 26
},
awsRegion: "us-west-2",
eventName: "INSERT",
eventSourceARN: "arn:aws:dynamodb:us-east-1:123456789012:table/images",
eventSource: "aws:dynamodb"
}
]
});
const event = createEvent("aws:websocket", {
body: {
first_name: "Sam",
last_name: "Smith",
},
requestContext: {
connectedAt: 123,
connectionId: "abc123",
},
});
const event = createEvent("aws:cloudWatch", {
"detail-type": "Something has been deleted.",
"region": "us-east-1"
});
const event = createEvent("aws:cloudWatchLog", {
awslogs: {
data: "Some gzipped, then base64 encoded data",
}
});
const event = createEvent("aws:alexaSkill", {
request: {
type: "CanFulfillIntentRequest",
},
context: {
System: {
device: {
deviceId: "myDevice",
},
},
},
});
const event = createEvent("aws:alexaSmartHome", {
payload: {
switchControlAction: "TURN_OFF",
},
});
const event = createEvent("aws:iot", {
this: {
can: {
be: "anything I want",
},
}
});
const event = createEvent("aws:cognitoUserPool", {
userName: "Aaron Stuyvenberg",
});
This is a fork of @serverless/event-mocks. Thanks! ❤️
MIT