@dustfoundation/serverless-testing
v4.0.0
Published
Library for testing serverless applications.
Downloads
10
Readme
@dustfoundation/serverless-testing
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...
});
});