66 "testing"
77
88 "github.com/hashicorp/terraform-provider-google/google/acctest"
9+ "github.com/hashicorp/terraform-provider-google/google/envvar"
910
1011 "github.com/hashicorp/terraform-plugin-testing/helper/resource"
1112)
@@ -500,14 +501,22 @@ func TestAccSpannerInstance_spannerInstanceWithAutoscaling(t *testing.T) {
500501}
501502
502503func TestAccSpannerInstance_freeInstanceBasicUpdate (t * testing.T ) {
503- displayName := fmt .Sprintf ("tf-test-%s" , acctest .RandString (t , 10 ))
504+ context := map [string ]interface {}{
505+ "random_suffix" : acctest .RandString (t , 10 ),
506+ "org" : envvar .GetTestOrgFromEnv (t ),
507+ "billingAccount" : envvar .GetTestBillingAccountFromEnv (t ),
508+ }
509+
504510 acctest .VcrTest (t , resource.TestCase {
505511 PreCheck : func () { acctest .AccTestPreCheck (t ) },
506512 ProtoV5ProviderFactories : acctest .ProtoV5ProviderFactories (t ),
507- CheckDestroy : testAccCheckSpannerInstanceDestroyProducer (t ),
513+ ExternalProviders : map [string ]resource.ExternalProvider {
514+ "time" : {},
515+ },
516+ CheckDestroy : testAccCheckSpannerInstanceDestroyProducer (t ),
508517 Steps : []resource.TestStep {
509518 {
510- Config : testAccSpannerInstance_freeInstanceBasic (displayName ),
519+ Config : testAccSpannerInstance_freeInstanceBasic (context ),
511520 Check : resource .ComposeTestCheckFunc (
512521 resource .TestCheckResourceAttrSet ("google_spanner_instance.main" , "state" ),
513522 ),
@@ -519,7 +528,7 @@ func TestAccSpannerInstance_freeInstanceBasicUpdate(t *testing.T) {
519528 ImportStateVerifyIgnore : []string {"labels" , "terraform_labels" },
520529 },
521530 {
522- Config : testAccSpannerInstance_freeInstanceBasicUpdate (displayName ),
531+ Config : testAccSpannerInstance_freeInstanceBasicUpdate (context ),
523532 Check : resource .ComposeTestCheckFunc (
524533 resource .TestCheckResourceAttrSet ("google_spanner_instance.main" , "state" ),
525534 ),
@@ -831,26 +840,68 @@ resource "google_spanner_instance" "example" {
831840` , context )
832841}
833842
834- func testAccSpannerInstance_freeInstanceBasic (name string ) string {
835- return fmt .Sprintf (`
843+ func testAccSpannerInstance_freeInstanceBasic (context map [string ]interface {}) string {
844+ return acctest .Nprintf (`
845+ resource "google_project" "acceptance" {
846+ project_id = "tf-test-%{random_suffix}"
847+ name = "tf-test-%{random_suffix}"
848+ org_id = "%{org}"
849+ billing_account = "%{billingAccount}"
850+ deletion_policy = "DELETE"
851+ }
852+
853+ resource "time_sleep" "wait_60_seconds" {
854+ create_duration = "60s"
855+ depends_on = [google_project.acceptance]
856+ }
857+
858+ resource "google_project_service" "spanner" {
859+ project = google_project.acceptance.project_id
860+ service = "spanner.googleapis.com"
861+ depends_on = [time_sleep.wait_60_seconds]
862+ }
863+
836864resource "google_spanner_instance" "main" {
837- name = "%s"
865+ project = google_project.acceptance.project_id
866+ name = "tf-test-%{random_suffix}"
838867 config = "regional-europe-west1"
839- display_name = "%s "
868+ display_name = "tf-test-%{random_suffix} "
840869 instance_type = "FREE_INSTANCE"
870+ depends_on = [google_project_service.spanner]
841871}
842- ` , name , name )
872+ ` , context )
873+ }
874+
875+ func testAccSpannerInstance_freeInstanceBasicUpdate (context map [string ]interface {}) string {
876+ return acctest .Nprintf (`
877+ resource "google_project" "acceptance" {
878+ project_id = "tf-test-%{random_suffix}"
879+ name = "tf-test-%{random_suffix}"
880+ org_id = "%{org}"
881+ billing_account = "%{billingAccount}"
882+ deletion_policy = "DELETE"
883+ }
884+
885+ resource "time_sleep" "wait_60_seconds" {
886+ create_duration = "60s"
887+ depends_on = [google_project.acceptance]
888+ }
889+
890+ resource "google_project_service" "spanner" {
891+ project = google_project.acceptance.project_id
892+ service = "spanner.googleapis.com"
893+ depends_on = [time_sleep.wait_60_seconds]
843894}
844895
845- func testAccSpannerInstance_freeInstanceBasicUpdate (name string ) string {
846- return fmt .Sprintf (`
847896resource "google_spanner_instance" "main" {
848- name = "%s"
897+ project = google_project.acceptance.project_id
898+ name = "tf-test-%{random_suffix}"
849899 config = "nam-eur-asia3"
850- display_name = "%s "
900+ display_name = "tf-test-%{random_suffix} "
851901 edition = "ENTERPRISE_PLUS"
852902 instance_type = "PROVISIONED"
853903 num_nodes = 1
904+ depends_on = [google_project_service.spanner]
854905}
855- ` , name , name )
906+ ` , context )
856907}
0 commit comments