# @serverless/event-mocks

> Event Mocks is a simple library designed to generate simple AWS events for testing and automation purposes.

Latest version **1.1.1** (published 2019-04-19) · Apache-2.0 license · 0 weekly downloads

## Install

```sh
npm install @serverless/event-mocks
pnpm add @serverless/event-mocks
yarn add @serverless/event-mocks
bun add @serverless/event-mocks
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.1.1 |
| Published | 2019-04-19 |
| First published | 2019-04-16 |
| Weekly downloads | 0 |
| License | Apache-2.0 |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 2 |
| Unpacked size | 37 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Author | Serverless, Inc. |
| Maintainers | ac360, aj.stuyvenberg, dschep, eahefnawy, pmuens, serverless-main |

## Links

- npm: https://www.npmjs.com/package/@serverless/event-mocks
- Repository: .
- npm.io page: https://npm.io/package/@serverless/event-mocks

## Dependencies (2)

- [lodash](https://npm.io/package/lodash.md) ^4.17.11
- [@types/lodash](https://npm.io/package/@types/lodash.md) ^4.14.123

## Recent versions

- 1.1.1 (latest) — 2019-04-19
- 1.1.0 — 2019-04-18
- 1.0.0 — 2019-04-17
- 0.1.0 — 2019-04-16

## README

# 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:
- [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/aws) to learn more about the data structure of each event source.

## Usage

### SNS

```js
import createEvent from "@serverless/event-mocks"

const mocked = createEvent(
  "aws:sns",
  {
    Records: [{
      Sns: {
        Message: "trigger-email"
      }
    }]
  });
```

### API Gateway

```js
import createEvent from "@serverless/event-mocks"

const event = createEvent(
  "aws:apiGateway",
  {
    body: {
      first_name: "Sam",
      last_name: "Smith"
    }
  });
```

### S3

```js
import createEvent from "@serverless/event-mocks"

const event = createEvent(
  "aws:s3",
  {
    Records: [{
      eventName: "ObjectCreated:Put",
      s3: {
        bucket: {
          name: "my-bucket-name"
        },
        object: {
          key: "object-key"
        }
      }
    }]
  });
```

### Scheduled

```js
import createEvent from "@serverless/event-mocks"

const event = createEvent(
  "aws:scheduled",
  {
    region: "us-west-2"
  });
```

### Kinesis

```js
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",
  }
```

---
_Source: https://npm.io/package/@serverless/event-mocks · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
