@gilbarbara/aws-events-mock
v0.1.1
Published
Generate AWS events mocks for testing
Downloads
2
Readme
aws-events-mock
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.
Usage
npm i @gilbarbara/aws-events-mock
SNS
import createEvent from "@gilbarbara/aws-events-mock"
const mocked = createEvent(
"aws:sns",
{
Records: [{
Sns: {
Message: "trigger-email"
}
}]
});
API Gateway
import createEvent from "@gilbarbara/aws-events-mock"
const event = createEvent(
"aws:apiGateway",
{
body: {
first_name: "Sam",
last_name: "Smith"
}
});
S3
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"
}
}
}]
});
Scheduled
import createEvent from "@gilbarbara/aws-events-mock"
const event = createEvent(
"aws:scheduled",
{
region: "us-west-2"
});
Kinesis
import createEvent from "@gilbarbara/aws-events-mock"
const event = createEvent(
"aws:kinesis",
{
data: new Buffer("this is test data").toString("base64")
});
Dynamo
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"
}
]
});
WebSocket event
const event = createEvent("aws:websocket", {
body: {
first_name: "Sam",
last_name: "Smith",
},
requestContext: {
connectedAt: 123,
connectionId: "abc123",
},
});
CloudWatch event
const event = createEvent("aws:cloudWatch", {
"detail-type": "Something has been deleted.",
"region": "us-east-1"
});
CloudWatchLog event
const event = createEvent("aws:cloudWatchLog", {
awslogs: {
data: "Some gzipped, then base64 encoded data",
}
});
Alexa Skill event
const event = createEvent("aws:alexaSkill", {
request: {
type: "CanFulfillIntentRequest",
},
context: {
System: {
device: {
deviceId: "myDevice",
},
},
},
});
Alexa SmartHome event
const event = createEvent("aws:alexaSmartHome", {
payload: {
switchControlAction: "TURN_OFF",
},
});
IoT event
const event = createEvent("aws:iot", {
this: {
can: {
be: "anything I want",
},
}
});
Cognito Pool Event
const event = createEvent("aws:cognitoUserPool", {
userName: "Aaron Stuyvenberg",
});
Credits
This is a fork of @serverless/event-mocks. Thanks! ❤️
License
MIT