aws-cdk-assert
v1.1.0
Published
This tool gives handy utilities to test AWS CDK Stack.
Downloads
11
Readme
IMPORTANT This tool is NOT an official tool made by AWS.
aws-cdk-assert
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
(andRemovableResource
) 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.