From c5578eae2d900f8f40065009185e736363011e66 Mon Sep 17 00:00:00 2001 From: Samson Keung Date: Tue, 20 Aug 2024 13:34:59 -0700 Subject: [PATCH] adding first unit test for S3BucketOrigin --- .../test/s3-bucket-origin.test.ts | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 packages/aws-cdk-lib/aws-cloudfront-origins/test/s3-bucket-origin.test.ts diff --git a/packages/aws-cdk-lib/aws-cloudfront-origins/test/s3-bucket-origin.test.ts b/packages/aws-cdk-lib/aws-cloudfront-origins/test/s3-bucket-origin.test.ts new file mode 100644 index 0000000000000..aec8b694db2bb --- /dev/null +++ b/packages/aws-cdk-lib/aws-cloudfront-origins/test/s3-bucket-origin.test.ts @@ -0,0 +1,28 @@ +import { Template } from '../../assertions'; +import * as cloudfront from '../../aws-cloudfront/index'; +import * as origins from '../../aws-cloudfront-origins'; +import * as s3 from '../../aws-s3/index'; +import { Stack } from '../../core'; + +describe('S3BucketOrigin', () => { + describe('withOriginAccessControl', () => { + test('origin can be used by multiple Distributions', () => { + const stack = new Stack(); + const bucket = new s3.Bucket(stack, 'MyBucket'); + const origin = origins.S3BucketOrigin.withOriginAccessControl(bucket); + + new cloudfront.Distribution(stack, 'MyDistributionA', { + defaultBehavior: { origin: origin }, + }); + new cloudfront.Distribution(stack, 'MyDistributionB', { + defaultBehavior: { origin: origin }, + }); + + const template = Template.fromStack(stack); + template.resourceCountIs('AWS::CloudFront::OriginAccessControl', 1); + template.resourceCountIs('AWS::CloudFront::Distribution', 2); + template.resourceCountIs('AWS::S3::Bucket', 1); + template.resourceCountIs('AWS::S3::BucketPolicy', 1); + }); + }); +}); \ No newline at end of file