Nirvana Playing Madonna

    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.

    Keywords

    Install

    npm i aws-cdk-assert

    DownloadsWeekly Downloads

    1

    Version

    1.1.0

    License

    MIT

    Unpacked Size

    195 kB

    Total Files

    59

    Last publish

    Collaborators

    • szikszail