@@ -394,76 +394,92 @@ resource "fastly_service_vcl" "foo" {
394394}` , serviceName , domainName , backendAddress , backendName , backendAddress , backendName , backendAddress , backendName , backendAddress , backendName )
395395}
396396
397- func testAccServiceVCLBackendWithBooleans (serviceName , domainName , backendAddress , backendName string , useSSL , sslCheckCert , preferIPv6 , autoLoadbalance bool ) string {
398- return fmt .Sprintf (`
399- resource "fastly_service_vcl" "foo" {
400- name = "%s"
401-
402- domain {
403- name = "%s"
404- }
405-
406- backend {
407- address = "%s"
408- name = "%s"
409- use_ssl = %t
410- ssl_check_cert = %t
411- prefer_ipv6 = %t
412- auto_loadbalance = %t
413- port = 443
414- }
415-
416- force_destroy = true
417- }` , serviceName , domainName , backendAddress , backendName , useSSL , sslCheckCert , preferIPv6 , autoLoadbalance )
418- }
419-
420- func TestAccFastlyServiceVCLBackend_PreserveBooleansDuringNameChange (t * testing.T ) {
397+ func TestAccFastlyServiceVCLBackend_BooleanFieldsPreservedOnTimeoutUpdate (t * testing.T ) {
421398 var service gofastly.ServiceDetail
422399 serviceName := acctest .RandomWithPrefix ("tf-backend" )
423400 domainName := fmt .Sprintf ("test.%s.com" , acctest .RandString (10 ))
424401 backendAddress := "httpbin.org"
425-
426- initialBackendName := "test-backend"
427- updatedBackendName := "test-backend-renamed"
402+ backendName := "test-backend"
428403
429404 // Values we want to preserve
430405 useSSL := true
431406 sslCheckCert := false
432407 preferIPv6 := true
433408 autoLoadbalance := true
434409
410+ initialConnectTimeout := 1000
411+ updatedConnectTimeout := 2000
412+
435413 resource .ParallelTest (t , resource.TestCase {
436414 PreCheck : func () { testAccPreCheck (t ) },
437415 ProviderFactories : testAccProviders ,
438416 CheckDestroy : testAccCheckServiceVCLDestroy ,
417+
439418 Steps : []resource.TestStep {
419+ // Step 1: Create
440420 {
441- Config : testAccServiceVCLBackendWithBooleans (serviceName , domainName , backendAddress , initialBackendName , useSSL , sslCheckCert , preferIPv6 , autoLoadbalance ),
421+ Config : testAccServiceVCLBackendWithBooleansAndConnectTimeout (
422+ serviceName , domainName , backendAddress , backendName ,
423+ useSSL , sslCheckCert , preferIPv6 , autoLoadbalance , initialConnectTimeout ,
424+ ),
442425 Check : resource .ComposeTestCheckFunc (
443426 testAccCheckServiceExists ("fastly_service_vcl.foo" , & service ),
444427 resource .TestCheckResourceAttr ("fastly_service_vcl.foo" , "backend.#" , "1" ),
445428 resource .TestCheckResourceAttr ("fastly_service_vcl.foo" , "backend.0.use_ssl" , fmt .Sprintf ("%t" , useSSL )),
446429 resource .TestCheckResourceAttr ("fastly_service_vcl.foo" , "backend.0.ssl_check_cert" , fmt .Sprintf ("%t" , sslCheckCert )),
447430 resource .TestCheckResourceAttr ("fastly_service_vcl.foo" , "backend.0.prefer_ipv6" , fmt .Sprintf ("%t" , preferIPv6 )),
448431 resource .TestCheckResourceAttr ("fastly_service_vcl.foo" , "backend.0.auto_loadbalance" , fmt .Sprintf ("%t" , autoLoadbalance )),
432+ resource .TestCheckResourceAttr ("fastly_service_vcl.foo" , "backend.0.connect_timeout" , fmt .Sprintf ("%d" , initialConnectTimeout )),
449433 ),
450434 },
435+ // Step 2: Update connect_timeout only
451436 {
452- // Change name only, rest stays the same
453- Config : testAccServiceVCLBackendWithBooleans (serviceName , domainName , backendAddress , updatedBackendName , useSSL , sslCheckCert , preferIPv6 , autoLoadbalance ),
437+ Config : testAccServiceVCLBackendWithBooleansAndConnectTimeout (
438+ serviceName , domainName , backendAddress , backendName ,
439+ useSSL , sslCheckCert , preferIPv6 , autoLoadbalance , updatedConnectTimeout ,
440+ ),
454441 Check : resource .ComposeTestCheckFunc (
455442 testAccCheckServiceExists ("fastly_service_vcl.foo" , & service ),
456443 resource .TestCheckResourceAttr ("fastly_service_vcl.foo" , "backend.#" , "1" ),
457444 resource .TestCheckResourceAttr ("fastly_service_vcl.foo" , "backend.0.use_ssl" , fmt .Sprintf ("%t" , useSSL )),
458445 resource .TestCheckResourceAttr ("fastly_service_vcl.foo" , "backend.0.ssl_check_cert" , fmt .Sprintf ("%t" , sslCheckCert )),
459446 resource .TestCheckResourceAttr ("fastly_service_vcl.foo" , "backend.0.prefer_ipv6" , fmt .Sprintf ("%t" , preferIPv6 )),
460447 resource .TestCheckResourceAttr ("fastly_service_vcl.foo" , "backend.0.auto_loadbalance" , fmt .Sprintf ("%t" , autoLoadbalance )),
448+ resource .TestCheckResourceAttr ("fastly_service_vcl.foo" , "backend.0.connect_timeout" , fmt .Sprintf ("%d" , updatedConnectTimeout )),
461449 ),
462450 },
463451 },
464452 })
465453}
466454
455+ func testAccServiceVCLBackendWithBooleansAndConnectTimeout (
456+ serviceName , domainName , backendAddress , backendName string ,
457+ useSSL , sslCheckCert , preferIPv6 , autoLoadbalance bool ,
458+ connectTimeout int ,
459+ ) string {
460+ return fmt .Sprintf (`
461+ resource "fastly_service_vcl" "foo" {
462+ name = "%s"
463+
464+ domain {
465+ name = "%s"
466+ }
467+
468+ backend {
469+ address = "%s"
470+ name = "%s"
471+ use_ssl = %t
472+ ssl_check_cert = %t
473+ prefer_ipv6 = %t
474+ auto_loadbalance = %t
475+ connect_timeout = %d
476+ }
477+
478+ force_destroy = true
479+ }` , serviceName , domainName , backendAddress , backendName ,
480+ useSSL , sslCheckCert , preferIPv6 , autoLoadbalance , connectTimeout )
481+ }
482+
467483func TestAccFastlyServiceVCLBackend_Minimal (t * testing.T ) {
468484 var service gofastly.ServiceDetail
469485 serviceName := fmt .Sprintf ("tf-test-%s" , acctest .RandString (10 ))
0 commit comments