@@ -198,6 +198,66 @@ func TestAccCloudflareLoadBalancerPool_VirtualNetworkID(t *testing.T) {
198
198
})
199
199
}
200
200
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
+
201
261
func TestAccCloudflareLoadBalancerPool_FullySpecified (t * testing.T ) {
202
262
t .Parallel ()
203
263
var loadBalancerPool cfold.LoadBalancerPool
@@ -421,6 +481,10 @@ func testAccCheckCloudflareLoadBalancerPoolConfigFullySpecified(id, headerValue,
421
481
// TODO add field to config after creating monitor resource
422
482
}
423
483
484
+ func testAccCheckCloudflareLoadBalancerPoolConfigPatched (id , accountID string ) string {
485
+ return acctest .LoadTestCase ("loadbalancerpoolconfigpatched.tf" , id , accountID )
486
+ }
487
+
424
488
func testAccCheckCloudflareTunnelVirtualNetworkExists (name string , virtualNetwork * cfold.TunnelVirtualNetwork ) resource.TestCheckFunc {
425
489
return func (s * terraform.State ) error {
426
490
rs , ok := s .RootModule ().Resources [name ]
0 commit comments