@@ -67,15 +67,13 @@ func TestAccIntakeRunnerMin(t *testing.T) {
6767 ConfigVariables : testConfigVarsMin ,
6868 Config : testutil .IntakeProviderConfig () + "\n " + resourceMin ,
6969 Check : resource .ComposeAggregateTestCheckFunc (
70- // Verify project_id, name and the existence of runner_id
7170 resource .TestCheckResourceAttr (intakeRunnerResource , "project_id" , testutil .ProjectId ),
7271 resource .TestCheckResourceAttr (intakeRunnerResource , "name" , intakeRunnerMinName ),
7372 resource .TestCheckResourceAttrSet (intakeRunnerResource , "runner_id" ),
7473 resource .TestCheckResourceAttr (intakeRunnerResource , "max_message_size_kib" , "1024" ),
7574 resource .TestCheckResourceAttr (intakeRunnerResource , "max_messages_per_hour" , "1000" ),
76- // Verify empty fields
77- resource .TestCheckResourceAttr (intakeRunnerResource , "description" , "" ),
78- resource .TestCheckResourceAttr (intakeRunnerResource , "labels.%" , "0" ),
75+ resource .TestCheckResourceAttrSet (intakeRunnerResource , "id" ),
76+ resource .TestCheckResourceAttrSet (intakeRunnerResource , "region" ),
7977 ),
8078 },
8179 // Data source check: creates config that includes resource and data source
@@ -90,7 +88,11 @@ func TestAccIntakeRunnerMin(t *testing.T) {
9088 }` , testutil .IntakeProviderConfig ()+ "\n " + resourceMin , intakeRunnerResource , intakeRunnerResource , intakeRunnerResource ),
9189 Check : resource .ComposeAggregateTestCheckFunc (
9290 // Make sure it's correctly found resource by comparing runner_id attribute
91+ resource .TestCheckResourceAttrPair (intakeRunnerResource , "project_id" , "data.stackit_intake_runner.example" , "project_id" ),
9392 resource .TestCheckResourceAttrPair (intakeRunnerResource , "runner_id" , "data.stackit_intake_runner.example" , "runner_id" ),
93+ resource .TestCheckResourceAttrPair (intakeRunnerResource , "name" , "data.stackit_intake_runner.example" , "name" ),
94+ resource .TestCheckResourceAttrPair (intakeRunnerResource , "region" , "data.stackit_intake_runner.example" , "region" ),
95+ resource .TestCheckResourceAttrPair (intakeRunnerResource , "max_messages_per_hour" , "data.stackit_intake_runner.example" , "max_messages_per_hour" ),
9496 ),
9597 },
9698 // Simulate terraform import
@@ -131,22 +133,46 @@ func TestAccIntakeRunnerMax(t *testing.T) {
131133 ConfigVariables : testConfigVarsMax ,
132134 Config : testutil .IntakeProviderConfig () + "\n " + resourceMax ,
133135 Check : resource .ComposeAggregateTestCheckFunc (
134- resource .TestCheckResourceAttr (intakeRunnerResource , "name" , intakeRunnerMaxName ),
136+ resource .TestCheckResourceAttr (intakeRunnerResource , "project_id" , testutil .ConvertConfigVariable (testConfigVarsMax ["project_id" ])),
137+ resource .TestCheckResourceAttr (intakeRunnerResource , "name" , testutil .ConvertConfigVariable (testConfigVarsMax ["name" ])),
135138 resource .TestCheckResourceAttr (intakeRunnerResource , "description" , "An example runner for Intake" ),
136139 resource .TestCheckResourceAttr (intakeRunnerResource , "max_message_size_kib" , "1024" ),
137140 resource .TestCheckResourceAttr (intakeRunnerResource , "max_messages_per_hour" , "1100" ),
138- // Verify map size
139141 resource .TestCheckResourceAttr (intakeRunnerResource , "labels.%" , "2" ),
140- resource .TestCheckResourceAttr (intakeRunnerResource , "labels.created_by" , "terraform-provider-stackit" ),
141142 resource .TestCheckResourceAttr (intakeRunnerResource , "labels.env" , "development" ),
143+ resource .TestCheckResourceAttr (intakeRunnerResource , "labels.created_by" , "terraform-provider-stackit" ),
144+ resource .TestCheckResourceAttrSet (intakeRunnerResource , "runner_id" ),
145+ resource .TestCheckResourceAttrSet (intakeRunnerResource , "id" ),
146+ resource .TestCheckResourceAttrSet (intakeRunnerResource , "region" ),
147+ ),
148+ },
149+ {
150+ ConfigVariables : testConfigVarsMax ,
151+ Config : fmt .Sprintf (`
152+ %s
153+ data "stackit_intake_runner" "example" {
154+ project_id = %s.project_id
155+ runner_id = %s.runner_id
156+ }` , testutil .IntakeProviderConfig ()+ "\n " + resourceMax , intakeRunnerResource , intakeRunnerResource ),
157+ Check : resource .ComposeAggregateTestCheckFunc (
158+ resource .TestCheckResourceAttrPair (intakeRunnerResource , "project_id" , "data.stackit_intake_runner.example" , "project_id" ),
159+ resource .TestCheckResourceAttrPair (intakeRunnerResource , "runner_id" , "data.stackit_intake_runner.example" , "runner_id" ),
160+ resource .TestCheckResourceAttrPair (intakeRunnerResource , "name" , "data.stackit_intake_runner.example" , "name" ),
161+ resource .TestCheckResourceAttrPair (intakeRunnerResource , "description" , "data.stackit_intake_runner.example" , "description" ),
162+ resource .TestCheckResourceAttrPair (intakeRunnerResource , "region" , "data.stackit_intake_runner.example" , "region" ),
163+ resource .TestCheckResourceAttrPair (intakeRunnerResource , "labels.env" , "data.stackit_intake_runner.example" , "labels.env" ),
164+ resource .TestCheckResourceAttrPair (intakeRunnerResource , "max_messages_per_hour" , "data.stackit_intake_runner.example" , "max_messages_per_hour" ),
142165 ),
143166 },
144167 // Update and verify changes are reflected
145168 {
146169 ConfigVariables : testConfigVarsMaxUpdated (),
147170 Config : testutil .IntakeProviderConfig () + "\n " + resourceMax ,
148171 Check : resource .ComposeAggregateTestCheckFunc (
149- resource .TestCheckResourceAttr (intakeRunnerResource , "name" , intakeRunnerMaxNameUpdated ),
172+ resource .TestCheckResourceAttr (intakeRunnerResource , "name" , testutil .ConvertConfigVariable (testConfigVarsMaxUpdated ()["name" ])),
173+ // Ensure optional fields survived the update (didn't get wiped by a bad Update payload)
174+ resource .TestCheckResourceAttr (intakeRunnerResource , "description" , "An example runner for Intake" ),
175+ resource .TestCheckResourceAttr (intakeRunnerResource , "labels.env" , "development" ),
150176 ),
151177 },
152178 },
@@ -160,7 +186,6 @@ func testAccCheckIntakeRunnerDestroy(s *terraform.State) error {
160186 var client * intake.APIClient
161187 var err error
162188
163- // todo: check this again
164189 effectiveRegion := testutil .Region
165190 if effectiveRegion == "" {
166191 effectiveRegion = "eu01"
0 commit comments