Skip to content

Latest commit

 

History

History
106 lines (86 loc) · 2.36 KB

README.md

File metadata and controls

106 lines (86 loc) · 2.36 KB

Step Functions Testing Library

Features

Install

npm i stepfunctions-testing

Usage

Creating a mocked response

Return a response

const checkIdentityLambdaMockedSuccess = new MockedResponse(
  'CheckIdentityLambdaMockedSuccess'
).return<any>({
  StatusCode: 200,
  Payload: {
    statusCode: 200,
    body: JSON.stringify({
      approved: true,
      message: 'identity validation passed',
    }),
  },
});

Throw a response

const checkIdentityLambdaMockedThrowError = new MockedResponse(
  'CheckIdentityLambdaMockedThrowError'
).throw('CustomValidationError', 'Check Identity Validation Failed');

Repeating responses

const checkIdentityLambdaMockedThrowError = new MockedResponse(
  'CheckIdentityLambdaMockedThrowError'
).throw('CustomValidationError', 'Check Identity Validation Failed', /* repeat the response 3 times. total becomes 4 */ 3);

Full example

// Create mocked responses
const checkIdentityLambdaMockedSuccess = new MockedResponse(
  'CheckIdentityLambdaMockedSuccess'
).return<any>({
  StatusCode: 200,
  Payload: {
    statusCode: 200,
    body: JSON.stringify({
      approved: true,
      message: 'identity validation passed',
    }),
  },
});

const checkAddressLambdaMockedSuccess = new MockedResponse(
  'CheckAddressLambdaMockedSuccess'
).return<any>({
  StatusCode: 200,
  Payload: {
    statusCode: 200,
    body: JSON.stringify({
      approved: true,
      message: 'address validation passed',
    }),
  },
});

// Create a state machine test definition
const stateMachineTestDefinition = new StateMachineTestDefinition('SomeStateMachineName')
  .addTestCase(
    new StateMachineTestCase('HappyPathTest')
      .withInput(input)
      .addMockedState(
        'CheckIdentity',
        checkIdentityLambdaMockedSuccess
      )
      .addMockedState(
        'CheckAddress',
        checkAddressLambdaMockedSuccess
      )
  );

// Create a config
const config = new StepFunctionsMockConfig()
      .addTestDefinition(stateMachineTestDefinition);

// Convert the config object to JSON
// You can write this down to a file to be used by step functions local
config.toJSON();

License

stepfunctions-testing is available under the terms of MIT License