IMPORTANT This tool is NOT an official tool made by AWS.
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 |
Suggest one in the issues, with an example CloudFormation template or contribute implementing it in this tool.
// 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();
});
});
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.