diff --git a/README.md b/README.md index 1a8c1ae..020e0e8 100755 --- a/README.md +++ b/README.md @@ -80,3 +80,25 @@ const event = createEvent({ data: new Buffer('this is test data').toString('base64') } }); +``` + +### DynamoDB + +```js +const createEvent = require('aws-event-mocks'); +const event = createEvent({ + template: 'aws:dynamodb', + merge: { + Records: [{ + dynamodb: { + NewImage: { + Message: { + S: "Newest item!" + } + }, + StreamViewType: "NEW_IMAGES", + } + }] + } +}); +``` diff --git a/events/aws/dynamoDb.json b/events/aws/dynamoDb.json new file mode 100644 index 0000000..a71bdbc --- /dev/null +++ b/events/aws/dynamoDb.json @@ -0,0 +1,30 @@ +{ + "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" + } + ] +} diff --git a/lib/index.js b/lib/index.js index 506fac1..7ba1878 100755 --- a/lib/index.js +++ b/lib/index.js @@ -13,6 +13,7 @@ const dictionary = { 'aws:scheduled': require('../events/aws/scheduled.json'), 'aws:s3': require('../events/aws/s3.json'), 'aws:kinesis': require('../events/aws/kinesis.json'), + 'aws:dynamodb': require('../events/aws/dynamoDb.json'), }; module.exports = function createEvent(config) { diff --git a/tests/index.js b/tests/index.js index 8d7431d..9ba73a5 100644 --- a/tests/index.js +++ b/tests/index.js @@ -150,4 +150,28 @@ describe('#AWS Event Mocks()', function () { expect(new Buffer(event.Records[0].kinesis.data, 'base64').toString('ascii')).to.equal('kinesis test'); }); }); + + describe("createDynamodbStreamEvent()", function () { + it("Should return DynamoDb stream mocked event", function () { + const event = createEvent({ + template: 'aws:dynamodb', + merge: { + Records: [{ + dynamodb: { + NewImage: { + Message: { + S: "Newest item!" + } + }, + StreamViewType: "NEW_IMAGES", + } + }] + } + }); + + expect(event.Records[0].eventSource).to.equal('aws:dynamodb'); + expect(event.Records[0].dynamodb.StreamViewType).to.equal("NEW_IMAGES"); + expect(event.Records[0].dynamodb.NewImage.Message.S).to.equal("Newest item!"); + }) + }) });