@serverless/event-mocks
Advanced tools
Comparing version 1.0.0 to 1.1.0
{ | ||
"name": "@serverless/event-mocks", | ||
"version": "1.0.0", | ||
"version": "1.1.0", | ||
"description": "Event Mocks is a simple library designed to generate simple AWS events for testing and automation purposes.", | ||
@@ -5,0 +5,0 @@ "main": "dist/index.js", |
208
README.md
# Event Mocks | ||
A small library that includes details mocks of AWS Lambda event sources. Useful for use when unit testing your Lambda functions. Supported Event Sources are: SNS, API Gateway, S3, & Scheduled. | ||
A small library that includes details mocks of AWS Lambda event sources. Useful for use when unit testing your Lambda functions. | ||
Supported Event Sources are: | ||
- [x] API Gateway | ||
- [x] SNS | ||
- [x] SQS | ||
- [x] DynamoDB | ||
- [x] S3 | ||
- [x] Scheduled | ||
- [x] Websocket | ||
- [x] Alexa Skill | ||
- [x] Alexa Smart Home | ||
- [x] CloudWatch | ||
- [x] CloudWatch Log | ||
- [x] Cognito Pool | ||
- [x] IoT | ||
The library simply uses default event source mock templates and merge it with any overwrite you provide. [Check out the JSON template files](./lib/events) to learn more about the data structure of each event source. | ||
The library simply uses default event source mock templates and merge it with any overwrite you provide. [Check out the JSON template files](./lib/events/aws) to learn more about the data structure of each event source. | ||
@@ -11,13 +25,13 @@ ## Usage | ||
```js | ||
const createEvent = require('aws-event-mocks'); | ||
const mocked = createEvent({ | ||
template: 'aws:sns', | ||
merge: { | ||
import createEvent from "@serverless/event-mocks" | ||
const mocked = createEvent( | ||
"aws:sns", | ||
{ | ||
Records: [{ | ||
Sns: { | ||
Message: 'trigger-email' | ||
Message: "trigger-email" | ||
} | ||
}] | ||
} | ||
}); | ||
}); | ||
``` | ||
@@ -28,12 +42,12 @@ | ||
```js | ||
const createEvent = require('aws-event-mocks'); | ||
const event = createEvent({ | ||
template: 'aws:apiGateway', | ||
merge: { | ||
import createEvent from "@serverless/event-mocks" | ||
const event = createEvent( | ||
"aws:apiGateway", | ||
{ | ||
body: { | ||
first_name: 'Sam', | ||
last_name: 'Smith' | ||
first_name: "Sam", | ||
last_name: "Smith" | ||
} | ||
} | ||
}); | ||
}); | ||
``` | ||
@@ -44,19 +58,19 @@ | ||
```js | ||
const createEvent = require('aws-event-mocks'); | ||
const event = createEvent({ | ||
template: 'aws:s3', | ||
merge: { | ||
import createEvent from "@serverless/event-mocks" | ||
const event = createEvent( | ||
"aws:s3", | ||
{ | ||
Records: [{ | ||
eventName: 'ObjectCreated:Put', | ||
eventName: "ObjectCreated:Put", | ||
s3: { | ||
bucket: { | ||
name: 'my-bucket-name' | ||
name: "my-bucket-name" | ||
}, | ||
object: { | ||
key: 'object-key' | ||
key: "object-key" | ||
} | ||
} | ||
}] | ||
} | ||
}); | ||
}); | ||
``` | ||
@@ -67,9 +81,9 @@ | ||
```js | ||
const createEvent = require('aws-event-mocks'); | ||
const event = createEvent({ | ||
template: 'aws:scheduled', | ||
merge: { | ||
region: 'us-west-2' | ||
} | ||
}); | ||
import createEvent from "@serverless/event-mocks" | ||
const event = createEvent( | ||
"aws:scheduled", | ||
{ | ||
region: "us-west-2" | ||
}); | ||
``` | ||
@@ -80,8 +94,124 @@ | ||
```js | ||
const createEvent = require('aws-event-mocks'); | ||
const event = createEvent({ | ||
template: 'aws:kinesis', | ||
merge: { | ||
data: new Buffer('this is test data').toString('base64') | ||
import createEvent from "@serverless/event-mocks" | ||
const event = createEvent( | ||
"aws:kinesis", | ||
{ | ||
data: new Buffer("this is test data").toString("base64") | ||
}); | ||
``` | ||
### Dynamo | ||
```js | ||
import createEvent from "@serverless/event-mocks" | ||
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 | ||
```js | ||
const event = createEvent("aws:websocket", { | ||
body: { | ||
first_name: "Sam", | ||
last_name: "Smith", | ||
}, | ||
requestContext: { | ||
connectedAt: 123, | ||
connectionId: "abc123", | ||
}, | ||
}); | ||
``` | ||
### CloudWatch event | ||
```js | ||
const event = createEvent("aws:cloudWatch", { | ||
"detail-type": "Something has been deleted.", | ||
"region": "us-east-1" | ||
}); | ||
``` | ||
### CloudWatchLog event | ||
```js | ||
const event = createEvent("aws:cloudWatchLog", { | ||
awslogs: { | ||
data: "Some gzipped, then base64 encoded data", | ||
} | ||
}); | ||
``` | ||
### Alexa Skill event | ||
```js | ||
const event = createEvent("aws:alexaSkill", { | ||
request: { | ||
type: "CanFulfillIntentRequest", | ||
}, | ||
context: { | ||
System: { | ||
device: { | ||
deviceId: "myDevice", | ||
}, | ||
}, | ||
}, | ||
} | ||
}); | ||
``` | ||
### Alexa SmartHome event | ||
```js | ||
const event = createEvent("aws:alexaSmartHome", { | ||
payload: { | ||
switchControlAction: "TURN_OFF", | ||
}, | ||
} | ||
``` | ||
### IoT event | ||
```js | ||
const event = createEvent("aws:iot", { | ||
this: { | ||
can: { | ||
be: "anything I want", | ||
}, | ||
} | ||
``` | ||
### Cognito Pool Event | ||
```js | ||
const event = createEvent("aws:cognitoUserPool", { | ||
userName: "Aaron Stuyvenberg", | ||
} | ||
``` |
@@ -14,2 +14,6 @@ { | ||
}, | ||
"typeRoots": [ | ||
"node_modules/@types", | ||
"./types" | ||
] | ||
} |
@@ -21,4 +21,4 @@ { | ||
"no-var-requires": false, | ||
"quotemark": [true, "single"], | ||
"semicolon": [true, "never"] | ||
"quotemark": [true, "double"], | ||
"semicolon": [true, "always"] | ||
}, | ||
@@ -25,0 +25,0 @@ "rulesDirectory": [], |
New author
Supply chain riskA new npm collaborator published a version of the package for the first time. New collaborators are usually benign additions to a project, but do indicate a change to the security surface area of a package.
Found 1 instance in 1 package
26752
420
213
1