aws-cdk-assert
TypeScript icon, indicating that this package has built-in type declarations

1.1.0 • Public • Published

IMPORTANT This tool is NOT an official tool made by AWS.

aws-cdk-assert

Downloads Version@npm Version@git CI Docs

This tool gives handy utilities to test AWS CDK Stack, with predefined test constructs for certain CDK constructs.

The tool currently contains the following test constructs:

Service Construct CloudFormation Type
ApiGateway ApiGatewayRestApi AWS::ApiGateway::RestApi
ApiGateway ApiGatewayAccount AWS::ApiGateway::Account
ApiGateway ApiGatewayDeployment AWS::ApiGateway::Deployment
ApiGateway ApiGatewayStage AWS::ApiGateway::Stage
ApiGateway ApiGatewayMethod AWS::ApiGateway::Method
ApiGateway ApiGatewayResource AWS::ApiGateway::Resource
ApiGateway ApiGatewayDomain AWS::ApiGateway::DomainName
ApiGateway ApiGatewayBasePathMapping AWS::ApiGateway::BasePathMapping
ApiGateway ApiGatewayApiKey AWS::ApiGateway::ApiKey
ApiGateway ApiGatewayUsagePlan AWS::ApiGateway::UsagePlan
ApiGateway ApiGatewayUsagePlanKey AWS::ApiGateway::UsagePlanKey
CloudFormation CloudFormationCustomResource AWS::CloudFormation::CustomResource
CloudFront CloudFrontDistribution AWS::CloudFront::Distribution
CloudFront CloudFrontFunction AWS::CloudFront::Function
CodeBuild CodeBuildSourceCredentials AWS::CodeBuild::SourceCredential
CodeBuild CodeBuildProject AWS::CodeBuild::Project
Custom CustomResource Custom::AWS
DynamoDB DynamoDBTable AWS::DynamoDB::Table
IAM IAMRole AWS::IAM::Role
IAM IAMPolicy AWS::IAM::Policy
Lambda LambdaFunction AWS::Lambda::Function
Lambda LambdaPermission AWS::Lambda::Permission
Logs LogGroup AWS::Logs::LogGroup
Route53 Route53HostedZone AWS::Route53::HostedZone
Route53 Route53RecordSet AWS::Route53::RecordSet
S3 S3Bucket AWS::S3::Bucket
S3 S3BucketPolicy AWS::S3::BucketPolicy
SecretsManager Secret AWS::SecretsManager::Secret
SSM SSMParameter AWS::SSM::Parameter
WAF v2 WafV2WebACL AWS::WAFv2::WebACL

Need a new construct?

Suggest one in the issues, with an example CloudFormation template or contribute implementing it in this tool.

Usage

// stack.test.ts
import * as cdk from 'aws-cdk-lib';
import * as MyStack from '../lib/mystack.ts';
import { AdvancedTemplate } from 'aws-cdk-assert';

describe('MyStack', () => {
  let template: AdvancedTemplate;

  beforeAll(() => {
    const app = new cdk.App();
    const stack = new MyStack.MyStack(app, 'MyStack', {
      // props
    });
    template = AdvancedTemplate.fromStack(stack);
  });

  test('should have S3 Bucket', () => {
    template.s3Bucket().withBucketName('MyBucket').exists();
  });
});

API

The main components/API the tool relies on:

  • AdvancedTemplate is a wrapper around Template, decorated with factory methods for the predefined constructs.
  • AdvancedMatcher is similar to Match, but with additional functions.
  • Resource (and RemovableResource) is the base construct to work with CloudFormation constructs. It allows to
    • construct the matcher properties, which will be used to find a construct in the template,
    • check if a construct exists or not,
    • check the count of a construct (not just based on type, but fully matching construct),
    • make assertions with extended information in case of failure,
    • etc.

For detailed documentation see the TypeDocs documentation.

Dependencies (1)

Dev Dependencies (14)

Package Sidebar

Install

npm i aws-cdk-assert

Weekly Downloads

0

Version

1.1.0

License

MIT

Unpacked Size

195 kB

Total Files

59

Last publish

Collaborators

  • szikszail