@dustfoundation/serverless-testing
TypeScript icon, indicating that this package has built-in type declarations

4.0.0 • Public • Published

@dustfoundation/serverless-testing

CI NPM Version Minimum Node.js Version

Library for testing serverless applications.

Installation

npm install --save @dustfoundation/serverless-testing

Features

Mock API Gateway Proxy Handler

import { mockAPIGatewayProxyHandler } from '@dustfoundation/serverless-testing';
import { expect } from 'chai';

describe('simple test', () => {
  it('GIVEN valid data THEN 201', async () => {
    // mockAPIGatewayProxyHandler.execute<T> - T is optional generic that describes response body type
    const { statusCode, body } = await mockAPIGatewayProxyHandler(handler)
      .execute<{ users: string[] }>({
        event: {
          pathParameters: { field: 'some' },
          queryStringParameters: { field: 'some' },
          body: JSON.stringify({ field: 'some' }),
          headers: { field: 'some' },
          requestContext: {
            authorizer: {
              id: 'YourCustomAuthorizerId',
              groups: ['YourCustomAuthorizerGroup1', 'YourCustomAuthorizerGroup2'].join(';'),
            },
          },
        },
        responseToJson: true,
      });

    expect(statusCode).eql(201);
    expect(body.users).lengthOf(5);
  });
});

Mock DynamoDB Stream Handler

import { mockDDBStreamHandler } from '@dustfoundation/serverless-testing';
import { expect } from 'chai';

describe('simple test', () => {
  it('GIVEN valid data THEN success', async () => {
    await mockDDBStreamHandler(handler).execute({
      records: [], // DynamoDB Stream Records
    });

    // You can test handler with .commandCalls(), etc...
  });
});

Mock SNS Handler

import { mockSNSHandler } from '@dustfoundation/serverless-testing';
import { expect } from 'chai';

describe('simple test', () => {
  it('GIVEN valid data THEN success', async () => {
    await mockSNSHandler(handler).execute({
      records: [], // SNS Records
    });

    // You can test handler with .commandCalls(), etc...
  });
});

Mock SQS Handler

import { mockSQSHandler } from '@dustfoundation/serverless-testing';
import { expect } from 'chai';

describe('simple test', () => {
  it('GIVEN valid data THEN success', async () => {
    await mockSQSHandler(handler).execute({
      records: [], // SQS Records
    });

    // You can test handler with .commandCalls(), etc...
  });
});

Readme

Keywords

none

Package Sidebar

Install

npm i @dustfoundation/serverless-testing

Weekly Downloads

3

Version

4.0.0

License

none

Unpacked Size

12.3 kB

Total Files

15

Last publish

Collaborators

  • hibanka
  • maxim-levitskiy