Skip to content

Commit 6a0ffc8

Browse files
authored
fix: repair tests + correct excpected/actual in Equal calls (#119)
1 parent e222c1a commit 6a0ffc8

File tree

10 files changed

+90
-68
lines changed

10 files changed

+90
-68
lines changed

examples/wafv2-logging-configuration/main.tf

Lines changed: 27 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,15 @@
1-
terraform {
2-
required_version = ">= 0.13.7"
3-
4-
required_providers {
5-
aws = ">= 4.44.0"
6-
}
7-
}
8-
9-
provider "aws" {
10-
region = "eu-west-1"
11-
}
12-
13-
141
#####
152
# VPC and subnets
163
#####
174
data "aws_vpc" "default" {
185
default = true
196
}
207

21-
data "aws_subnet_ids" "all" {
22-
vpc_id = data.aws_vpc.default.id
8+
data "aws_subnets" "all" {
9+
filter {
10+
name = "vpc-id"
11+
values = [data.aws_vpc.default.id]
12+
}
2313
}
2414

2515
#####
@@ -29,20 +19,35 @@ module "alb" {
2919
source = "umotif-public/alb/aws"
3020
version = "~> 2.0.0"
3121

32-
name_prefix = "alb-waf-example"
22+
name_prefix = "${var.name_prefix}-alb-waf-example"
3323
load_balancer_type = "application"
3424
internal = false
3525
vpc_id = data.aws_vpc.default.id
36-
subnets = data.aws_subnet_ids.all.ids
26+
subnets = toset(data.aws_subnets.all.ids)
3727
}
3828

3929
#####
4030
# Firehose configuration
4131
#####
4232

4333
resource "aws_s3_bucket" "bucket" {
44-
bucket = "aws-waf-firehose-stream-test-bucket"
34+
bucket = "${var.name_prefix}-aws-waf-firehose-stream-test-bucket"
35+
}
36+
37+
resource "aws_s3_bucket_ownership_controls" "bucket" {
38+
bucket = aws_s3_bucket.bucket.id
39+
rule {
40+
object_ownership = "BucketOwnerPreferred"
41+
}
42+
}
43+
44+
resource "aws_s3_bucket_acl" "bucket" {
4545
acl = "private"
46+
bucket = aws_s3_bucket.bucket.id
47+
48+
depends_on = [
49+
aws_s3_bucket_ownership_controls.bucket
50+
]
4651
}
4752

4853
resource "aws_iam_role" "firehose" {
@@ -100,9 +105,9 @@ EOF
100105

101106
resource "aws_kinesis_firehose_delivery_stream" "test_stream" {
102107
name = "aws-waf-logs-kinesis-firehose-test-stream"
103-
destination = "s3"
108+
destination = "extended_s3"
104109

105-
s3_configuration {
110+
extended_s3_configuration {
106111
role_arn = aws_iam_role.firehose.arn
107112
bucket_arn = aws_s3_bucket.bucket.arn
108113
}
@@ -114,7 +119,7 @@ resource "aws_kinesis_firehose_delivery_stream" "test_stream" {
114119
module "wafv2" {
115120
source = "../.."
116121

117-
name_prefix = "test-waf-setup"
122+
name_prefix = var.name_prefix
118123
alb_arn = module.alb.arn
119124

120125
create_alb_association = true
@@ -165,7 +170,7 @@ module "wafv2" {
165170

166171
visibility_config = {
167172
cloudwatch_metrics_enabled = false
168-
metric_name = "test-waf-setup-waf-main-metrics"
173+
metric_name = "${var.name_prefix}-waf-setup-waf-main-metrics"
169174
sampled_requests_enabled = false
170175
}
171176

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
variable "name_prefix" {
2+
description = "A prefix used for naming resources."
3+
type = string
4+
default = "example"
5+
}

examples/wafv2-sizeconstraint-rules/main.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ module "waf" {
3434
managed_rule_group_statement = {
3535
name = "AWSManagedRulesCommonRuleSet"
3636
vendor_name = "AWS"
37-
version = "Version_2.0"
37+
version = "Version_1.6"
3838
}
3939
},
4040
{

test/waf_webaclv2_and_or_test.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -43,10 +43,10 @@ func TestWafWebAclV2AndOr(t *testing.T) {
4343
WebAclRuleNames := terraform.Output(t, terraformOptions, "web_acl_rule_names")
4444

4545
// Verify we're getting back the outputs we expect
46-
assert.Equal(t, WebAclName, "test"+uniqueID)
46+
assert.Equal(t, "test"+uniqueID, WebAclName)
4747
assert.Contains(t, WebAclArn, "arn:aws:wafv2:eu-west-1:")
4848
assert.Contains(t, WebAclArn, "regional/webacl/test"+uniqueID)
49-
assert.Equal(t, WebAclVisConfigMetricName, "test"+uniqueID+"-waf-setup-waf-main-metrics")
50-
assert.Equal(t, WebAclCapacity, "714")
51-
assert.Equal(t, WebAclRuleNames, "block-specific-ip-set-or-body-contains-hotmail, block-specific-uri-path-and-requests-from-nl-gb-and-us, AWSManagedRulesCommonRuleSet-rule-1")
49+
assert.Equal(t, "test"+uniqueID+"-waf-setup-waf-main-metrics", WebAclVisConfigMetricName)
50+
assert.Equal(t, "760", WebAclCapacity)
51+
assert.Equal(t, "[block-specific-ip-set-or-body-contains-hotmail block-specific-uri block-specific-uri-path-and-not-requests-from-nl-gb-and-us block-specific-uri-path-and-requests-from-nl-gb-and-us AWSManagedRulesCommonRuleSet-rule-1]", WebAclRuleNames)
5252
}

test/waf_webaclv2_bytematch_test.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -43,10 +43,10 @@ func TestWafWebAclV2Bytematch(t *testing.T) {
4343
WebAclRuleNames := terraform.Output(t, terraformOptions, "web_acl_rule_names")
4444

4545
// Verify we're getting back the outputs we expect
46-
assert.Equal(t, WebAclName, "test"+uniqueID)
46+
assert.Equal(t, "test"+uniqueID, WebAclName)
4747
assert.Contains(t, WebAclArn, "arn:aws:wafv2:eu-west-1:")
4848
assert.Contains(t, WebAclArn, "regional/webacl/test"+uniqueID)
49-
assert.Equal(t, WebAclVisConfigMetricName, "test"+uniqueID+"-waf-setup-waf-main-metrics")
50-
assert.Equal(t, WebAclCapacity, "736")
51-
assert.Equal(t, WebAclRuleNames, "block-all-post-requests, block-if-request-body-contains-hotmail-email, block-single-user, block-specific-uri-path, AWSManagedRulesCommonRuleSet-rule-1")
49+
assert.Equal(t, "test"+uniqueID+"-waf-setup-waf-main-metrics", WebAclVisConfigMetricName)
50+
assert.Equal(t, "756", WebAclCapacity)
51+
assert.Equal(t, "[block-all-post-requests block-cookie block-if-request-body-contains-hotmail-email block-single-user block-specific-uri-path block-unauthorized AWSManagedRulesCommonRuleSet-rule-1]", WebAclRuleNames)
5252
}

test/waf_webaclv2_geomatch_test.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -43,10 +43,10 @@ func TestWafWebAclV2Geomatch(t *testing.T) {
4343
WebAclRuleNames := terraform.Output(t, terraformOptions, "web_acl_rule_names")
4444

4545
// Verify we're getting back the outputs we expect
46-
assert.Equal(t, WebAclName, "test"+uniqueID)
46+
assert.Equal(t, "test"+uniqueID, WebAclName)
4747
assert.Contains(t, WebAclArn, "arn:aws:wafv2:eu-west-1:")
4848
assert.Contains(t, WebAclArn, "regional/webacl/test"+uniqueID)
49-
assert.Equal(t, WebAclVisConfigMetricName, "test"+uniqueID+"-waf-setup-waf-main-metrics")
50-
assert.Equal(t, WebAclCapacity, "701")
51-
assert.Equal(t, WebAclRuleNames, "allow-nl-gb-us-traffic-only, AWSManagedRulesCommonRuleSet-rule-1")
49+
assert.Equal(t, "test"+uniqueID+"-waf-setup-waf-main-metrics", WebAclVisConfigMetricName)
50+
assert.Equal(t, "701", WebAclCapacity)
51+
assert.Equal(t, "[allow-nl-gb-us-traffic-only AWSManagedRulesCommonRuleSet-rule-1]", WebAclRuleNames)
5252
}

test/waf_webaclv2_label_match_test.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -43,10 +43,10 @@ func TestWafWebAclV2Labelmatch(t *testing.T) {
4343
WebAclRuleNames := terraform.Output(t, terraformOptions, "web_acl_rule_names")
4444

4545
// Verify we're getting back the outputs we expect
46-
assert.Equal(t, WebAclName, "test"+uniqueID)
46+
assert.Equal(t, "test"+uniqueID, WebAclName)
4747
assert.Contains(t, WebAclArn, "arn:aws:wafv2:eu-west-1:")
4848
assert.Contains(t, WebAclArn, "regional/webacl/test"+uniqueID)
49-
assert.Equal(t, WebAclVisConfigMetricName, "test"+uniqueID+"-waf-setup-waf-main-metrics")
50-
assert.Equal(t, WebAclCapacity, "61")
51-
assert.Equal(t, WebAclRuleNames, "block-specific-agent, AWSManagedRulesBotControlRuleSet-rule-1")
49+
assert.Equal(t, "test"+uniqueID+"-waf-setup-waf-main-metrics", WebAclVisConfigMetricName)
50+
assert.Equal(t, "61", WebAclCapacity)
51+
assert.Equal(t, "[block-specific-agent AWSManagedRulesBotControlRuleSet-rule-1]", WebAclRuleNames)
5252
}

test/waf_webaclv2_logging_config_test.go

Lines changed: 30 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,29 @@
11
package test
22

33
import (
4+
"fmt"
5+
"strings"
46
"testing"
57

8+
"github.com/gruntwork-io/terratest/modules/random"
69
"github.com/gruntwork-io/terratest/modules/terraform"
710
"github.com/stretchr/testify/assert"
811
)
912

1013
func TestWafWebAclV2Logging(t *testing.T) {
14+
// Random generate a string for naming resources
15+
uniqueID := strings.ToLower(random.UniqueId())
16+
resourceName := fmt.Sprintf("test%s", uniqueID)
17+
1118
// retryable errors in terraform testing.
1219
terraformOptions := terraform.WithDefaultRetryableErrors(t, &terraform.Options{
1320
TerraformDir: "../examples/wafv2-logging-configuration",
1421
Upgrade: true,
22+
23+
// Variables to pass using -var-file option
24+
Vars: map[string]interface{}{
25+
"name_prefix": resourceName,
26+
},
1527
})
1628

1729
// At the end of the test, run `terraform destroy` to clean up any resources that were created
@@ -51,39 +63,39 @@ func TestWafWebAclV2Logging(t *testing.T) {
5163
S3BucketId := terraform.Output(t, terraformOptions, "logging_s3_bucket_id")
5264

5365
// Verify we're getting back the outputs we expect
54-
assert.Equal(t, WebAclName, "test-waf-setup")
66+
assert.Equal(t, "test"+uniqueID, WebAclName)
5567
assert.Contains(t, WebAclArn, "arn:aws:wafv2:eu-west-1:")
56-
assert.Contains(t, WebAclArn, "regional/webacl/test-waf-setup")
57-
assert.Equal(t, WebAclVisConfigMetricName, "test-waf-setup-waf-main-metrics")
58-
assert.Equal(t, WebAclCapacity, "950")
59-
assert.Equal(t, WebAclRuleNames, "AWSManagedRulesCommonRuleSet-rule-1, AWSManagedRulesKnownBadInputsRuleSet-rule-2, AWSManagedRulesPHPRuleSet-rule-3")
68+
assert.Contains(t, WebAclArn, "regional/webacl/test"+uniqueID)
69+
assert.Equal(t, "test"+uniqueID+"-waf-setup-waf-main-metrics", WebAclVisConfigMetricName)
70+
assert.Equal(t, "950", WebAclCapacity)
71+
assert.Equal(t, "[AWSManagedRulesCommonRuleSet-rule-1 AWSManagedRulesKnownBadInputsRuleSet-rule-2 AWSManagedRulesPHPRuleSet-rule-3]", WebAclRuleNames)
6072

6173
assert.Contains(t, WebAclAssociationId, "arn:aws:wafv2:eu-west-1")
62-
assert.Contains(t, WebAclAssociationId, "regional/webacl/test-waf-setup")
74+
assert.Contains(t, WebAclAssociationId, "regional/webacl/"+resourceName)
6375
assert.Contains(t, WebAclAssociationResourceArn, "arn:aws:elasticloadbalancing:eu-west-1")
64-
assert.Contains(t, WebAclAssociationResourceArn, "loadbalancer/app/alb-waf-example")
76+
assert.Contains(t, WebAclAssociationResourceArn, "loadbalancer/app/"+resourceName+"-alb-waf-example")
6577
assert.Contains(t, WebAclAssociationAclArn, "arn:aws:wafv2:eu-west-1:")
66-
assert.Contains(t, WebAclAssociationAclArn, "regional/webacl/test-waf-setup")
78+
assert.Contains(t, WebAclAssociationAclArn, "regional/webacl/"+resourceName)
6779

6880
assert.Contains(t, WebAclAssociationAlbListId, "arn:aws:wafv2:eu-west-1")
69-
assert.Contains(t, WebAclAssociationAlbListId, "regional/webacl/test-waf-setup")
81+
assert.Contains(t, WebAclAssociationAlbListId, "regional/webacl/"+resourceName)
7082
assert.Contains(t, WebAclAssociationAlbListResourceArn, "arn:aws:elasticloadbalancing:eu-west-1")
71-
assert.Contains(t, WebAclAssociationAlbListResourceArn, "loadbalancer/app/alb-waf-example")
83+
assert.Contains(t, WebAclAssociationAlbListResourceArn, "loadbalancer/app/"+resourceName+"-alb-waf-example")
7284
assert.Contains(t, WebAclAssociationAlbListAclArn, "arn:aws:wafv2:eu-west-1:")
73-
assert.Contains(t, WebAclAssociationAlbListAclArn, "regional/webacl/test-waf-setup")
85+
assert.Contains(t, WebAclAssociationAlbListAclArn, "regional/webacl/"+resourceName)
7486

7587
assert.Contains(t, KinesisStreamArn, "arn:aws:firehose:eu-west-1")
7688
assert.Contains(t, KinesisStreamArn, "deliverystream/aws-waf-logs-kinesis-firehose-test-stream")
7789

7890
assert.Contains(t, IamRoleArn, "arn:aws:iam::")
7991
assert.Contains(t, IamRoleArn, "role/firehose-stream-test-role")
80-
assert.Equal(t, IamRoleId, "firehose-stream-test-role")
81-
assert.Equal(t, IamRoleName, "firehose-stream-test-role")
92+
assert.Equal(t, "firehose-stream-test-role", IamRoleId)
93+
assert.Equal(t, "firehose-stream-test-role", IamRoleName)
8294

83-
assert.Equal(t, IamRolePolicyId, "firehose-stream-test-role:firehose-role-custom-policy")
84-
assert.Equal(t, IamRolePolicyName, "firehose-role-custom-policy")
85-
assert.Equal(t, IamRolePolicyRole, "firehose-stream-test-role")
95+
assert.Equal(t, "firehose-stream-test-role:firehose-role-custom-policy", IamRolePolicyId)
96+
assert.Equal(t, "firehose-role-custom-policy", IamRolePolicyName)
97+
assert.Equal(t, "firehose-stream-test-role", IamRolePolicyRole)
8698

87-
assert.Equal(t, S3BucketArn, "arn:aws:s3:::aws-waf-firehose-stream-test-bucket")
88-
assert.Equal(t, S3BucketId, "aws-waf-firehose-stream-test-bucket")
99+
assert.Equal(t, "arn:aws:s3:::test"+uniqueID+"-aws-waf-firehose-stream-test-bucket", S3BucketArn)
100+
assert.Equal(t, "test"+uniqueID+"-aws-waf-firehose-stream-test-bucket", S3BucketId)
89101
}

test/waf_webaclv2_regex_pattern_test.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -47,13 +47,13 @@ func TestWafWebAclV2RegexPattern(t *testing.T) {
4747
WebAclRuleNames := terraform.Output(t, terraformOptions, "web_acl_rule_names")
4848

4949
// Verify we're getting back the outputs we expect
50-
assert.Equal(t, WebAclName, "test"+uniqueID)
50+
assert.Equal(t, "test"+uniqueID, WebAclName)
5151
assert.Contains(t, WebAclArn, "arn:aws:wafv2:eu-west-1:")
5252
assert.Contains(t, WebAclArn, "regional/webacl/test"+uniqueID)
53-
assert.Equal(t, WebAclVisConfigMetricName, "test"+uniqueID+"-waf-setup-waf-main-metrics")
54-
assert.Equal(t, WebAclCapacity, "35")
53+
assert.Equal(t, "test"+uniqueID+"-waf-setup-waf-main-metrics", WebAclVisConfigMetricName)
54+
assert.Equal(t, "35", WebAclCapacity)
5555
assert.Contains(t, BadBotsRegexArn, "arn:aws:wafv2:eu-west-1:")
5656
assert.Contains(t, BadBotsRegexArn, "regional/regexpatternset/BadBotsUserAgent/")
57-
assert.Equal(t, BadBotsRegexName, "BadBotsUserAgent")
58-
assert.Equal(t, WebAclRuleNames, "MatchRegexRule-1")
59-
}
57+
assert.Equal(t, "BadBotsUserAgent", BadBotsRegexName)
58+
assert.Equal(t, "[MatchRegexRule-1]", WebAclRuleNames)
59+
}

test/waf_webaclv2_sizeconstraint_test.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -43,10 +43,10 @@ func TestWafWebAclV2Sizeconstraint(t *testing.T) {
4343
WebAclRuleNames := terraform.Output(t, terraformOptions, "web_acl_rule_names")
4444

4545
// Verify we're getting back the outputs we expect
46-
assert.Equal(t, WebAclName, "test"+uniqueID)
46+
assert.Equal(t, "test"+uniqueID, WebAclName)
4747
assert.Contains(t, WebAclArn, "arn:aws:wafv2:eu-west-1:")
4848
assert.Contains(t, WebAclArn, "regional/webacl/test"+uniqueID)
49-
assert.Equal(t, WebAclVisConfigMetricName, "test"+uniqueID+"-waf-setup-waf-main-metrics")
50-
assert.Equal(t, WebAclCapacity, "737")
51-
assert.Equal(t, WebAclRuleNames, "BodySizeConstraint, block-all-post-requests, block-if-request-body-contains-hotmail-email, block-single-user, block-specific-uri-path, AWSManagedRulesCommonRuleSet-rule-1")
52-
}
49+
assert.Equal(t, "test"+uniqueID+"-waf-setup-waf-main-metrics", WebAclVisConfigMetricName)
50+
assert.Equal(t, "737", WebAclCapacity)
51+
assert.Equal(t, "[BodySizeConstraint block-all-post-requests block-if-request-body-contains-hotmail-email block-single-user block-specific-uri-path AWSManagedRulesCommonRuleSet-rule-1]", WebAclRuleNames)
52+
}

0 commit comments

Comments
 (0)