Skip to content

Commit 573cc58

Browse files
committed
add load_balancer_pool acceptance tests
1 parent 158b4a5 commit 573cc58

File tree

2 files changed

+100
-0
lines changed

2 files changed

+100
-0
lines changed

internal/services/load_balancer_pool/resource_test.go

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -198,6 +198,66 @@ func TestAccCloudflareLoadBalancerPool_VirtualNetworkID(t *testing.T) {
198198
})
199199
}
200200

201+
func TestAccCloudflareLoadBalancerPool_PatchBehavior(t *testing.T) {
202+
// Test to verify patching behavior for load balancer pool
203+
t.Parallel()
204+
testStartTime := time.Now().UTC()
205+
var loadBalancerPool cfold.LoadBalancerPool
206+
rnd := utils.GenerateRandomResourceName()
207+
name := "cloudflare_load_balancer_pool." + rnd
208+
accountID := os.Getenv("CLOUDFLARE_ACCOUNT_ID")
209+
210+
resource.Test(t, resource.TestCase{
211+
PreCheck: func() { acctest.TestAccPreCheck(t) },
212+
ProtoV6ProviderFactories: acctest.TestAccProtoV6ProviderFactories,
213+
CheckDestroy: testAccCheckCloudflareLoadBalancerPoolDestroy,
214+
Steps: []resource.TestStep{
215+
{
216+
// Create a basic load balancer pool
217+
Config: testAccCheckCloudflareLoadBalancerPoolConfigBasic(rnd, accountID),
218+
Check: resource.ComposeTestCheckFunc(
219+
testAccCheckCloudflareLoadBalancerPoolExists(name, &loadBalancerPool),
220+
resource.TestCheckResourceAttr(name, "name", fmt.Sprintf("my-tf-pool-basic-%s", rnd)),
221+
resource.TestCheckResourceAttr(name, "enabled", "true"),
222+
resource.TestCheckResourceAttr(name, "latitude", "12.3"),
223+
resource.TestCheckResourceAttr(name, "longitude", "55"),
224+
resource.TestCheckResourceAttr(name, "origins.#", "1"),
225+
resource.TestCheckResourceAttr(name, "origins.0.name", "example-1"),
226+
resource.TestCheckResourceAttr(name, "origins.0.address", "192.0.2.1"),
227+
testAccCheckCloudflareLoadBalancerPoolDates(name, &loadBalancerPool, testStartTime),
228+
),
229+
},
230+
{
231+
// Patch the load balancer pool with updated properties
232+
Config: testAccCheckCloudflareLoadBalancerPoolConfigPatched(rnd, accountID),
233+
Check: resource.ComposeTestCheckFunc(
234+
testAccCheckCloudflareLoadBalancerPoolExists(name, &loadBalancerPool),
235+
// Verify patched properties
236+
resource.TestCheckResourceAttr(name, "name", fmt.Sprintf("my-tf-pool-patched-%s", rnd)),
237+
resource.TestCheckResourceAttr(name, "description", "Patched load balancer pool"),
238+
resource.TestCheckResourceAttr(name, "enabled", "false"),
239+
resource.TestCheckResourceAttr(name, "latitude", "37.7749"),
240+
resource.TestCheckResourceAttr(name, "longitude", "-122.4194"),
241+
resource.TestCheckResourceAttr(name, "minimum_origins", "2"),
242+
resource.TestCheckResourceAttr(name, "check_regions.#", "1"),
243+
resource.TestCheckResourceAttr(name, "check_regions.0", "WEU"),
244+
resource.TestCheckResourceAttr(name, "origins.#", "2"),
245+
resource.TestCheckResourceAttr(name, "origins.0.name", "patched-origin-1"),
246+
resource.TestCheckResourceAttr(name, "origins.0.address", "192.0.2.2"),
247+
resource.TestCheckResourceAttr(name, "origins.1.name", "patched-origin-2"),
248+
resource.TestCheckResourceAttr(name, "origins.1.address", "192.0.2.3"),
249+
resource.TestCheckResourceAttr(name, "load_shedding.%", "4"),
250+
resource.TestCheckResourceAttr(name, "load_shedding.default_percent", "25"),
251+
resource.TestCheckResourceAttr(name, "load_shedding.default_policy", "random"),
252+
resource.TestCheckResourceAttr(name, "origin_steering.%", "1"),
253+
resource.TestCheckResourceAttr(name, "origin_steering.policy", "random"),
254+
testAccCheckCloudflareLoadBalancerPoolDates(name, &loadBalancerPool, testStartTime),
255+
),
256+
},
257+
},
258+
})
259+
}
260+
201261
func TestAccCloudflareLoadBalancerPool_FullySpecified(t *testing.T) {
202262
t.Parallel()
203263
var loadBalancerPool cfold.LoadBalancerPool
@@ -421,6 +481,10 @@ func testAccCheckCloudflareLoadBalancerPoolConfigFullySpecified(id, headerValue,
421481
// TODO add field to config after creating monitor resource
422482
}
423483

484+
func testAccCheckCloudflareLoadBalancerPoolConfigPatched(id, accountID string) string {
485+
return acctest.LoadTestCase("loadbalancerpoolconfigpatched.tf", id, accountID)
486+
}
487+
424488
func testAccCheckCloudflareTunnelVirtualNetworkExists(name string, virtualNetwork *cfold.TunnelVirtualNetwork) resource.TestCheckFunc {
425489
return func(s *terraform.State) error {
426490
rs, ok := s.RootModule().Resources[name]
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
resource "cloudflare_load_balancer_pool" "%[1]s" {
2+
account_id = "%[2]s"
3+
name = "my-tf-pool-patched-%[1]s"
4+
description = "Patched load balancer pool"
5+
enabled = false
6+
latitude = 37.7749
7+
longitude = -122.4194
8+
minimum_origins = 2
9+
check_regions = ["WEU"]
10+
11+
load_shedding {
12+
default_percent = 25
13+
default_policy = "random"
14+
session_percent = 10
15+
session_policy = "hash"
16+
}
17+
18+
origin_steering {
19+
policy = "random"
20+
}
21+
22+
origins = [
23+
{
24+
name = "patched-origin-1"
25+
address = "192.0.2.2"
26+
enabled = true
27+
weight = 0.5
28+
},
29+
{
30+
name = "patched-origin-2"
31+
address = "192.0.2.3"
32+
enabled = true
33+
weight = 0.5
34+
}
35+
]
36+
}

0 commit comments

Comments
 (0)