Skip to content

Commit 4e19d22

Browse files
committed
simpler test generation for resource identity
1 parent 47d5414 commit 4e19d22

File tree

1 file changed

+54
-35
lines changed

1 file changed

+54
-35
lines changed

mmv1/templates/terraform/examples/base_configs/test_file.go.tmpl

Lines changed: 54 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,12 @@
1818
package {{ $.Res.PackageName }}_test
1919

2020
import (
21-
{{- if not $.Res.ExcludeDelete }}
21+
{{- if not $.Res.ExcludeDelete }}
2222
{{- if not $.Res.CustomCode.TestCheckDestroy }}
2323
"fmt"
2424
{{- end }}
2525
"strings"
26-
{{- end }}
26+
{{- end }}
2727
"testing"
2828

2929
"github.com/hashicorp/terraform-plugin-testing/helper/resource"
@@ -62,12 +62,24 @@ func TestAcc{{ $e.TestSlug $.Res.ProductMetadata.Name $.Res.Name }}(t *testing.T
6262
})
6363
{{- end }}
6464

65-
context := map[string]interface{}{
66-
{{- template "EnvVarContext" dict "TestEnvVars" $e.TestEnvVars "HasNewLine" false}}
67-
{{- range $varKey, $varVal := $e.TestVarsOverrides }}
65+
randomSuffix := acctest.RandString(t, 10)
66+
context := make(map[string]interface{})
67+
context["random_suffix"] = randomSuffix
68+
69+
envVars := map[string]interface{}{
70+
{{- template "EnvVarContext" dict "TestEnvVars" $e.TestEnvVars "HasNewLine" false}}
71+
}
72+
for k, v := range envVars {
73+
context[k] = v
74+
}
75+
76+
overrides := map[string]interface{}{
77+
{{- range $varKey, $varVal := $e.TestVarsOverrides }}
6878
"{{$varKey}}": {{$varVal}},
69-
{{- end }}
70-
"random_suffix": acctest.RandString(t, 10),
79+
{{- end }}
80+
}
81+
for k, v := range overrides {
82+
context[k] = v
7183
}
7284

7385
acctest.VcrTest(t, resource.TestCase{
@@ -168,16 +180,38 @@ func TestAcc{{ $.Res.ResourceName }}_ResourceIdentity(t *testing.T) {
168180
t.Parallel()
169181
{{- if gt (len $.Res.TestExamples) 0 }}
170182
{{- $firstExample := index $.Res.TestExamples 0 }}
171-
context := map[string]interface{}{
172-
{{- template "EnvVarContext" dict "TestEnvVars" $firstExample.TestEnvVars "HasNewLine" false}}
173-
"random_suffix": acctest.RandString(t, 10),
183+
randomSuffix := acctest.RandString(t, 10)
184+
context := make(map[string]interface{})
185+
context["random_suffix"] = randomSuffix
186+
187+
identityProps := map[string]interface{}{
188+
{{- range $e := $.Res.IdentityProperties }}
189+
{{- if eq $e.Name "project" }}
190+
"project": envvar.GetTestProjectFromEnv(),
191+
{{- else }}
192+
"{{ $e.Name }}": fmt.Sprintf("tf-test-example-{{ lower $.Res.Name }}%s", randomSuffix),
193+
{{- end }}
194+
{{- end }}
195+
}
196+
for k, v := range identityProps {
197+
context[k] = v
198+
}
199+
200+
envVars := map[string]interface{}{
201+
{{- template "EnvVarContext" dict "TestEnvVars" $firstExample.TestEnvVars "HasNewLine" false}}
202+
}
203+
for k, v := range envVars {
204+
context[k] = v
205+
}
206+
207+
overrides := map[string]interface{}{
208+
{{- range $varKey, $varVal := $firstExample.TestVarsOverrides }}
209+
"{{$varKey}}": {{$varVal}},
210+
{{- end }}
211+
}
212+
for k, v := range overrides {
213+
context[k] = v
174214
}
175-
{{- range $e := $.Res.IdentityProperties }}
176-
context["{{ $e.Name }}"] = acctest.RandString(t, 10)
177-
{{- end }}
178-
{{- range $varKey, $varVal := $firstExample.TestVarsOverrides }}
179-
context["{{$varKey}}"] = {{$varVal}}
180-
{{- end }}
181215

182216
resource.Test(t, resource.TestCase{
183217
PreCheck: func() { acctest.AccTestPreCheck(t) },
@@ -188,27 +222,12 @@ func TestAcc{{ $.Res.ResourceName }}_ResourceIdentity(t *testing.T) {
188222
Steps: []resource.TestStep{
189223
{
190224
Config: testAcc{{ $firstExample.TestSlug $.Res.ProductMetadata.Name $.Res.Name }}(context),
191-
ConfigStateChecks: []statecheck.StateCheck{
192-
statecheck.ExpectIdentity(
193-
"{{ $.Res.TerraformName }}.{{ $firstExample.PrimaryResourceId }}",
194-
map[string]knownvalue.Check{
195-
{{- range $e := $.Res.IdentityProperties }}
196-
"{{ $e.Name }}": knownvalue.StringExact(context["{{ $e.Name }}"].(string)),
197-
{{- end }}
198-
},
199-
),
200-
{{- range $e := $.Res.IdentityProperties }}
201-
statecheck.ExpectKnownValue(
202-
"{{ $.Res.TerraformName }}.{{ $firstExample.PrimaryResourceId }}",
203-
tfjsonpath.New("{{ $e.Name }}"),
204-
knownvalue.StringExact(context["{{ $e.Name }}"].(string))),
205-
{{- end }}
206-
},
207225
},
208226
{
209-
ResourceName: "{{ $.Res.TerraformName }}.{{ $firstExample.PrimaryResourceId }}",
210-
ImportState: true,
211-
ImportStateKind: resource.ImportBlockWithResourceIdentity,
227+
ResourceName: "{{ $.Res.TerraformName }}.{{ $firstExample.PrimaryResourceId }}",
228+
RefreshState: true,
229+
ExpectNonEmptyPlan: true,
230+
ImportStateKind: resource.ImportBlockWithResourceIdentity,
212231
},
213232
},
214233
})

0 commit comments

Comments
 (0)