@@ -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
496492func importStatePreconditions (t testing.T , helper * plugintest.Helper , step TestStep ) error {
0 commit comments