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.