Skip to content

Commit

Permalink
Added tests for hostedZone urls and A Record
Browse files Browse the repository at this point in the history
Signed-off-by: Brandon Shien <[email protected]>
  • Loading branch information
bshien committed Apr 9, 2024
1 parent c5eab59 commit cef98cb
Show file tree
Hide file tree
Showing 2 changed files with 68 additions and 0 deletions.
20 changes: 20 additions & 0 deletions infrastructure/test/hostedzone-stack.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,26 @@ test('HostedZone Stack Test', () => {
hostedZone: Project.METRICS_HOSTED_ZONE,
appName: "OpenSearchMetrics"
});
const hostedZoneCognitoStack = new OpenSearchHealthRoute53(app, 'Test-OpenSearchMetrics-HostedZoneCognito', {
hostedZone: Project.METRICS_COGNITO_HOSTED_ZONE,
appName: "OpenSearchMetricsCognito"
});
const hostedZoneStackTemplate = Template.fromStack(hostedZoneStack);

hostedZoneStackTemplate.resourceCountIs('AWS::Route53::HostedZone', 1);
hostedZoneStackTemplate.hasResourceProperties('AWS::Route53::HostedZone', {
"Name": "metrics.opensearch.org."
});
hostedZoneStackTemplate.hasResourceProperties('AWS::CertificateManager::Certificate', {
"DomainName": "metrics.opensearch.org"
});

const hostedZoneCognitoStackTemplate = Template.fromStack(hostedZoneCognitoStack);
hostedZoneCognitoStackTemplate.resourceCountIs('AWS::Route53::HostedZone', 1);
hostedZoneCognitoStackTemplate.hasResourceProperties('AWS::Route53::HostedZone', {
"Name": "metrics.login.opensearch.org."
});
hostedZoneCognitoStackTemplate.hasResourceProperties('AWS::CertificateManager::Certificate', {
"DomainName": "metrics.login.opensearch.org"
});
});
48 changes: 48 additions & 0 deletions infrastructure/test/nginx-proxy-readonly.test.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
import {App} from "aws-cdk-lib";
import {Template} from "aws-cdk-lib/assertions";
import Project from "../lib/enums/project";
import {OpenSearchMetricsNginxReadonly} from "../lib/stacks/opensearchNginxProxyReadonly";
import {VpcStack} from "../lib/stacks/vpc";
import {OpenSearchDomainStack} from "../lib/stacks/opensearch";
import {ArnPrincipal} from "aws-cdk-lib/aws-iam";
import {OpenSearchHealthRoute53} from "../lib/stacks/route53";

test('NginxProxyReadonly Stack Test', () => {
const app = new App();
const vpcStack = new VpcStack(app, 'Test-OpenSearchHealth-VPC', {});
const openSearchDomainStack = new OpenSearchDomainStack(app, 'Test-OpenSearchHealth-OpenSearch', {
region: "us-east-1",
account: "test-account",
vpcStack: vpcStack,
enableNginxCognito: true,
jenkinsAccess: {
jenkinsAccountRoles: [
new ArnPrincipal(Project.JENKINS_MASTER_ROLE),
new ArnPrincipal(Project.JENKINS_AGENT_ROLE)
]
}
});
const metricsHostedZone = new OpenSearchHealthRoute53(app, 'Test-OpenSearchMetrics-HostedZone', {
hostedZone: Project.METRICS_HOSTED_ZONE,
appName: "OpenSearchMetrics"
});
const openSearchMetricsNginxReadonlyStack = new OpenSearchMetricsNginxReadonly(app, 'Test-OpenSearchMetricsNginxReadonly', {
region: Project.REGION,
account: Project.AWS_ACCOUNT,
vpc: vpcStack.vpc,
securityGroup: vpcStack.securityGroup,
opensearchDashboardUrlProps: {
opensearchDashboardVpcUrl: openSearchDomainStack.domain.domainEndpoint,
openSearchDomainName: openSearchDomainStack.domain.domainName
},
albProps: {
hostedZone: metricsHostedZone,
certificateArn: metricsHostedZone.certificateArn,
},
});
const openSearchMetricsNginxReadonlyTemplate = Template.fromStack(openSearchMetricsNginxReadonlyStack);
openSearchMetricsNginxReadonlyTemplate.resourceCountIs('AWS::Route53::RecordSet', 1);
openSearchMetricsNginxReadonlyTemplate.hasResourceProperties('AWS::Route53::RecordSet', {
"Type": "A"
});
});

0 comments on commit cef98cb

Please sign in to comment.