Skip to content

Commit e7c572c

Browse files
Merge pull request #5845 from cferic/argo_smart_routing-tests
test(argo_smart_routing): add test cases
2 parents 10d0408 + dc52145 commit e7c572c

File tree

4 files changed

+81
-6
lines changed

4 files changed

+81
-6
lines changed

internal/services/argo_smart_routing/resource_test.go

Lines changed: 72 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,16 @@ package argo_smart_routing_test
33
import (
44
"fmt"
55
"os"
6+
"regexp"
67
"testing"
78

9+
"github.com/hashicorp/terraform-plugin-testing/helper/resource"
10+
"github.com/hashicorp/terraform-plugin-testing/knownvalue"
11+
"github.com/hashicorp/terraform-plugin-testing/plancheck"
12+
"github.com/hashicorp/terraform-plugin-testing/tfjsonpath"
13+
814
"github.com/cloudflare/terraform-provider-cloudflare/internal/acctest"
915
"github.com/cloudflare/terraform-provider-cloudflare/internal/utils"
10-
"github.com/hashicorp/terraform-plugin-testing/helper/resource"
1116
)
1217

1318
func TestAccCloudflareArgoSmartRouting_Basic(t *testing.T) {
@@ -17,21 +22,83 @@ func TestAccCloudflareArgoSmartRouting_Basic(t *testing.T) {
1722

1823
resource.Test(t, resource.TestCase{
1924
PreCheck: func() {
20-
acctest.TestAccPreCheck_AccountID(t)
25+
acctest.TestAccPreCheck_ZoneID(t)
2126
acctest.TestAccPreCheck_Credentials(t)
2227
},
2328
ProtoV6ProviderFactories: acctest.TestAccProtoV6ProviderFactories,
2429
Steps: []resource.TestStep{
2530
{
26-
Config: testAccCheckCloudflareArgoSmartRoutingBasic(zoneID, rnd),
31+
Config: testAccCheckCloudflareArgoSmartRoutingEnable(zoneID, rnd),
32+
Check: resource.ComposeTestCheckFunc(
33+
resource.TestCheckResourceAttr(name, "id", zoneID),
34+
resource.TestCheckResourceAttr(name, "zone_id", zoneID),
35+
resource.TestCheckResourceAttr(name, "value", "on"),
36+
),
37+
},
38+
{
39+
Config: testAccCheckCloudflareArgoSmartRoutingEnable(zoneID, rnd),
2740
Check: resource.ComposeTestCheckFunc(
41+
resource.TestCheckResourceAttr(name, "id", zoneID),
42+
resource.TestCheckResourceAttr(name, "zone_id", zoneID),
2843
resource.TestCheckResourceAttr(name, "value", "on"),
2944
),
45+
PlanOnly: true,
46+
ExpectNonEmptyPlan: false,
47+
},
48+
{
49+
Config: testAccCheckCloudflareArgoSmartRoutingDisable(zoneID, rnd),
50+
Check: resource.ComposeTestCheckFunc(
51+
resource.TestCheckResourceAttr(name, "id", zoneID),
52+
resource.TestCheckResourceAttr(name, "zone_id", zoneID),
53+
resource.TestCheckResourceAttr(name, "value", "off"),
54+
),
55+
ConfigPlanChecks: resource.ConfigPlanChecks{
56+
PreApply: []plancheck.PlanCheck{
57+
plancheck.ExpectResourceAction(name, plancheck.ResourceActionUpdate),
58+
plancheck.ExpectKnownValue(
59+
name,
60+
tfjsonpath.New("value"),
61+
knownvalue.StringExact("off"),
62+
),
63+
},
64+
},
65+
},
66+
{
67+
ResourceName: name,
68+
ImportState: true,
69+
ImportStateVerify: true,
3070
},
3171
},
3272
})
3373
}
3474

35-
func testAccCheckCloudflareArgoSmartRoutingBasic(zoneID, name string) string {
36-
return acctest.LoadTestCase("basic.tf", zoneID, name)
75+
func TestAccCloudflareArgoSmartRouting_InvalidValue(t *testing.T) {
76+
zoneID := os.Getenv("CLOUDFLARE_ZONE_ID")
77+
rnd := utils.GenerateRandomResourceName()
78+
79+
resource.Test(t, resource.TestCase{
80+
PreCheck: func() {
81+
acctest.TestAccPreCheck_AccountID(t)
82+
acctest.TestAccPreCheck_Credentials(t)
83+
},
84+
ProtoV6ProviderFactories: acctest.TestAccProtoV6ProviderFactories,
85+
Steps: []resource.TestStep{
86+
{
87+
Config: testAccCheckCloudflareArgoSmartRoutingInvalidValue(zoneID, rnd),
88+
ExpectError: regexp.MustCompile(regexp.QuoteMeta("Invalid Attribute Value Match")),
89+
},
90+
},
91+
})
92+
}
93+
94+
func testAccCheckCloudflareArgoSmartRoutingEnable(zoneID, name string) string {
95+
return acctest.LoadTestCase("enable.tf", zoneID, name)
96+
}
97+
98+
func testAccCheckCloudflareArgoSmartRoutingDisable(zoneID, name string) string {
99+
return acctest.LoadTestCase("disable.tf", zoneID, name)
100+
}
101+
102+
func testAccCheckCloudflareArgoSmartRoutingInvalidValue(zoneID, name string) string {
103+
return acctest.LoadTestCase("invalid_value.tf", zoneID, name)
37104
}
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
resource "cloudflare_argo_smart_routing" "%[2]s" {
2+
zone_id = "%[1]s"
3+
value = "off"
4+
}
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
resource "cloudflare_argo_smart_routing" "%[2]s" {
2-
zone_id = "%[1]s"
2+
zone_id = "%[1]s"
33
value = "on"
44
}
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
resource "cloudflare_argo_smart_routing" "%[2]s" {
2+
zone_id = "%[1]s"
3+
value = "invalid"
4+
}

0 commit comments

Comments
 (0)