Skip to content

Commit 619a685

Browse files
author
Yago Carlos Fernandez Gou
committed
Add missing checks in tests
1 parent 8a85cfe commit 619a685

File tree

2 files changed

+40
-14
lines changed

2 files changed

+40
-14
lines changed

stackit/internal/services/intake/resource_acc_test.go

Lines changed: 34 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -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"

stackit/internal/services/intake/runner/resource.go

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -425,6 +425,12 @@ func mapFields(runnerResp *intake.IntakeRunnerResponse, model *Model, region str
425425
runnerId,
426426
)
427427

428+
if runnerResp.Id == nil || *runnerResp.Id == "" {
429+
model.RunnerId = types.StringNull()
430+
} else {
431+
model.RunnerId = types.StringPointerValue(runnerResp.Id)
432+
}
433+
428434
if runnerResp.Labels == nil {
429435
model.Labels = types.MapValueMust(types.StringType, map[string]attr.Value{})
430436
} else {
@@ -435,11 +441,6 @@ func mapFields(runnerResp *intake.IntakeRunnerResponse, model *Model, region str
435441
model.Labels = labels
436442
}
437443

438-
if runnerResp.Id != nil || *runnerResp.Id == "" {
439-
model.RunnerId = types.StringNull()
440-
} else {
441-
model.RunnerId = types.StringPointerValue(runnerResp.Id)
442-
}
443444
model.Name = types.StringPointerValue(runnerResp.DisplayName)
444445
model.Description = types.StringPointerValue(runnerResp.Description)
445446
model.Region = types.StringValue(region)

0 commit comments

Comments
 (0)