@@ -464,6 +464,78 @@ func TestAccFastlyServiceVCLBackend_PreserveBooleansDuringNameChange(t *testing.
464464 })
465465}
466466
467+ func TestAccFastlyServiceVCLBackend_Minimal (t * testing.T ) {
468+ var service gofastly.ServiceDetail
469+ serviceName := fmt .Sprintf ("tf-test-%s" , acctest .RandString (10 ))
470+ domainName := fmt .Sprintf ("fastly-test.tf-%s.com" , acctest .RandString (10 ))
471+ backendName := fmt .Sprintf ("backend-tf-%s" , acctest .RandString (10 ))
472+ backendAddress := "httpbin.org"
473+
474+ // Expected backend with minimal configuration and API defaults
475+ backend := gofastly.Backend {
476+ Address : gofastly .ToPointer (backendAddress ),
477+ Name : gofastly .ToPointer (backendName ),
478+ Port : gofastly .ToPointer (443 ),
479+
480+ // NOTE: The following are defaults applied by the API
481+ AutoLoadbalance : gofastly .ToPointer (false ),
482+ BetweenBytesTimeout : gofastly .ToPointer (10000 ),
483+ Comment : gofastly .ToPointer ("" ),
484+ ConnectTimeout : gofastly .ToPointer (1000 ),
485+ ErrorThreshold : gofastly .ToPointer (0 ),
486+ FirstByteTimeout : gofastly .ToPointer (15000 ),
487+ HealthCheck : gofastly .ToPointer ("" ),
488+ Hostname : gofastly .ToPointer (backendAddress ),
489+ KeepAliveTime : nil , // API returns null when not configured
490+ MaxConn : gofastly .ToPointer (200 ),
491+ PreferIPv6 : gofastly .ToPointer (false ),
492+ RequestCondition : gofastly .ToPointer ("" ),
493+ Shield : gofastly .ToPointer ("" ),
494+ SSLCheckCert : gofastly .ToPointer (true ),
495+ Weight : gofastly .ToPointer (100 ),
496+ UseSSL : gofastly .ToPointer (false ),
497+ }
498+
499+ resource .ParallelTest (t , resource.TestCase {
500+ PreCheck : func () {
501+ testAccPreCheck (t )
502+ },
503+ ProviderFactories : testAccProviders ,
504+ CheckDestroy : testAccCheckServiceVCLDestroy ,
505+ Steps : []resource.TestStep {
506+ {
507+ Config : testAccServiceVCLBackendMinimal (serviceName , domainName , backendAddress , backendName ),
508+ Check : resource .ComposeTestCheckFunc (
509+ testAccCheckServiceExists ("fastly_service_vcl.foo" , & service ),
510+ resource .TestCheckResourceAttr ("fastly_service_vcl.foo" , "name" , serviceName ),
511+ resource .TestCheckResourceAttr ("fastly_service_vcl.foo" , "backend.#" , "1" ),
512+ testAccCheckFastlyServiceVCLBackendAttributes (& service , []* gofastly.Backend {& backend }),
513+ ),
514+ },
515+ },
516+ })
517+ }
518+
519+ func testAccServiceVCLBackendMinimal (serviceName , domainName , backendAddress , backendName string ) string {
520+ return fmt .Sprintf (`
521+ resource "fastly_service_vcl" "foo" {
522+ name = "%s"
523+
524+ domain {
525+ name = "%s"
526+ comment = "demo"
527+ }
528+
529+ backend {
530+ address = "%s"
531+ name = "%s"
532+ port = 443
533+ }
534+
535+ force_destroy = true
536+ }` , serviceName , domainName , backendAddress , backendName )
537+ }
538+
467539func testAccCheckFastlyServiceVCLBackendAttributes (service * gofastly.ServiceDetail , want []* gofastly.Backend ) resource.TestCheckFunc {
468540 return func (_ * terraform.State ) error {
469541 conn := testAccProvider .Meta ().(* APIClient ).conn
0 commit comments