Skip to content

Commit 2ef656a

Browse files
committed
Refactor to append() style
1 parent cdc70c1 commit 2ef656a

File tree

1 file changed

+24
-28
lines changed

1 file changed

+24
-28
lines changed

helper/resource/testing_new_import_state.go

Lines changed: 24 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -125,15 +125,12 @@ func testStepNewImportState(ctx context.Context, t testing.T, helper *plugintest
125125
TestStepConfigRequest: testStepConfigRequest,
126126
}.Exec())
127127

128-
importConfig := ""
129128
if kind.plannable() && kind.resourceIdentity() {
130-
importConfig = appendImportBlockWithIdentity(importConfig, resourceName, priorIdentityValues)
129+
testStepConfig = appendImportBlockWithIdentity(testStepConfig, resourceName, priorIdentityValues)
131130
} else if kind.plannable() {
132-
importConfig = appendImportBlock(importConfig, resourceName, importId)
131+
testStepConfig = appendImportBlock(testStepConfig, resourceName, importId)
133132
}
134133

135-
testStepConfig = testStepConfig.Append(ctx, importConfig)
136-
137134
if testStepConfig == nil {
138135
t.Fatal("Cannot import state with no specified config")
139136
}
@@ -144,13 +141,11 @@ func testStepNewImportState(ctx context.Context, t testing.T, helper *plugintest
144141
case step.ConfigDirectory != nil:
145142
// TODO: extract / DRY
146143

147-
importConfig := ""
148144
if kind.plannable() && kind.resourceIdentity() {
149-
importConfig = appendImportBlockWithIdentity(importConfig, resourceName, priorIdentityValues)
145+
testStepConfig = appendImportBlockWithIdentity(testStepConfig, resourceName, priorIdentityValues)
150146
} else if kind.plannable() {
151-
importConfig = appendImportBlock(importConfig, resourceName, importId)
147+
testStepConfig = appendImportBlock(testStepConfig, resourceName, importId)
152148
}
153-
testStepConfig = testStepConfig.Append(ctx, importConfig)
154149

155150
case step.ConfigFile != nil:
156151
// TODO: ship it
@@ -446,51 +441,52 @@ func testImportCommand(ctx context.Context, t testing.T, workingDir *plugintest.
446441
return nil
447442
}
448443

449-
func appendImportBlock(config string, resourceName string, importID string) string {
450-
return config + fmt.Sprintf(``+"\n"+
451-
`import {`+"\n"+
452-
` to = %s`+"\n"+
453-
` id = %q`+"\n"+
454-
`}`,
455-
resourceName, importID)
444+
func appendImportBlock(config teststep.Config, resourceName string, importID string) teststep.Config {
445+
return config.Append(
446+
context.Background(), // TODO: remove
447+
fmt.Sprintf(``+"\n"+
448+
`import {`+"\n"+
449+
` to = %s`+"\n"+
450+
` id = %q`+"\n"+
451+
`}`,
452+
resourceName, importID))
456453
}
457454

458-
func appendImportBlockWithIdentity(config string, resourceName string, identityValues map[string]any) string {
459-
configBuilder := config
460-
configBuilder += fmt.Sprintf(``+"\n"+
455+
func appendImportBlockWithIdentity(config teststep.Config, resourceName string, identityValues map[string]any) teststep.Config {
456+
configBuilder := strings.Builder{}
457+
configBuilder.WriteString(fmt.Sprintf(``+"\n"+
461458
`import {`+"\n"+
462459
` to = %s`+"\n"+
463460
` identity = {`+"\n",
464-
resourceName)
461+
resourceName))
465462

466463
for k, v := range identityValues {
467464
switch v := v.(type) {
468465
case bool:
469-
configBuilder += fmt.Sprintf(` %q = %t`+"\n", k, v)
466+
configBuilder.WriteString(fmt.Sprintf(` %q = %t`+"\n", k, v))
470467

471468
case []any:
472469
var quotedV []string
473470
for _, v := range v {
474471
quotedV = append(quotedV, fmt.Sprintf(`%q`, v))
475472
}
476-
configBuilder += fmt.Sprintf(` %q = [%s]`+"\n", k, strings.Join(quotedV, ", "))
473+
configBuilder.WriteString(fmt.Sprintf(` %q = [%s]`+"\n", k, strings.Join(quotedV, ", ")))
477474

478475
case json.Number:
479-
configBuilder += fmt.Sprintf(` %q = %s`+"\n", k, v)
476+
configBuilder.WriteString(fmt.Sprintf(` %q = %s`+"\n", k, v))
480477

481478
case string:
482-
configBuilder += fmt.Sprintf(` %q = %q`+"\n", k, v)
479+
configBuilder.WriteString(fmt.Sprintf(` %q = %q`+"\n", k, v))
483480

484481
default:
485482
panic(fmt.Sprintf("unexpected type %T for identity value %q", v, k))
486483
}
487484
}
488485

489-
configBuilder += `` +
490-
` }` + "\n" +
491-
`}` + "\n"
486+
configBuilder.WriteString(` }` + "\n")
487+
configBuilder.WriteString(`}` + "\n")
492488

493-
return configBuilder
489+
return config.Append(context.Background(), configBuilder.String())
494490
}
495491

496492
func importStatePreconditions(t testing.T, helper *plugintest.Helper, step TestStep) error {

0 commit comments

Comments
 (0)