Skip to content

Commit b3a26dc

Browse files
authored
helper/resource: easy access to state in tfjson.State form (#473)
1 parent c4be868 commit b3a26dc

File tree

4 files changed

+16
-12
lines changed

4 files changed

+16
-12
lines changed

helper/resource/testing_new.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ func runNewTest(ctx context.Context, t testing.T, c TestCase, helper *plugintest
6868
var statePreDestroy *terraform.State
6969
var err error
7070
err = runProviderCommand(ctx, t, func() error {
71-
statePreDestroy, err = getState(ctx, t, wd)
71+
_, statePreDestroy, err = getState(ctx, t, wd)
7272
if err != nil {
7373
return err
7474
}
@@ -447,18 +447,18 @@ func runNewTest(ctx context.Context, t testing.T, c TestCase, helper *plugintest
447447
}
448448
}
449449

450-
func getState(ctx context.Context, t testing.T, wd *plugintest.WorkingDir) (*terraform.State, error) {
450+
func getState(ctx context.Context, t testing.T, wd *plugintest.WorkingDir) (*tfjson.State, *terraform.State, error) {
451451
t.Helper()
452452

453453
jsonState, err := wd.State(ctx)
454454
if err != nil {
455-
return nil, err
455+
return nil, nil, err
456456
}
457457
state, err := shimStateFromJson(jsonState)
458458
if err != nil {
459459
t.Fatal(err)
460460
}
461-
return state, nil
461+
return jsonState, state, nil
462462
}
463463

464464
func stateIsEmpty(state *terraform.State) bool {
@@ -573,7 +573,7 @@ func testIDRefresh(ctx context.Context, t testing.T, c TestCase, wd *plugintest.
573573
if err != nil {
574574
t.Fatalf("Error running terraform refresh: %s", err)
575575
}
576-
state, err = getState(ctx, t, wd)
576+
_, state, err = getState(ctx, t, wd)
577577
if err != nil {
578578
return err
579579
}

helper/resource/testing_new_config.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,7 @@ func testStepNewConfig(ctx context.Context, t testing.T, c TestCase, wd *plugint
159159
}
160160

161161
err = runProviderCommand(ctx, t, func() error {
162-
stateBeforeApplication, err = getState(ctx, t, wd)
162+
_, stateBeforeApplication, err = getState(ctx, t, wd)
163163
if err != nil {
164164
return err
165165
}
@@ -200,7 +200,7 @@ func testStepNewConfig(ctx context.Context, t testing.T, c TestCase, wd *plugint
200200
var state *terraform.State
201201

202202
err := runProviderCommand(ctx, t, func() error {
203-
state, err = getState(ctx, t, wd)
203+
_, state, err = getState(ctx, t, wd)
204204
if err != nil {
205205
return err
206206
}
@@ -384,7 +384,7 @@ func testStepNewConfig(ctx context.Context, t testing.T, c TestCase, wd *plugint
384384
var state *terraform.State
385385

386386
err = runProviderCommand(ctx, t, func() error {
387-
state, err = getState(ctx, t, wd)
387+
_, state, err = getState(ctx, t, wd)
388388
if err != nil {
389389
return err
390390
}

helper/resource/testing_new_import_state.go

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,10 +58,11 @@ func testStepNewImportState(ctx context.Context, t testing.T, helper *plugintest
5858

5959
// get state from check sequence
6060
var state *terraform.State
61+
var stateJSON *tfjson.State
6162
var err error
6263

6364
err = runProviderCommand(ctx, t, func() error {
64-
state, err = getState(ctx, t, wd)
65+
stateJSON, state, err = getState(ctx, t, wd)
6566
if err != nil {
6667
return err
6768
}
@@ -71,6 +72,9 @@ func testStepNewImportState(ctx context.Context, t testing.T, helper *plugintest
7172
t.Fatalf("Error getting state: %s", err)
7273
}
7374

75+
// TODO: this statement is a placeholder -- it simply prevents stateJSON from being unused
76+
logging.HelperResourceTrace(ctx, fmt.Sprintf("State before import: values %v", stateJSON.Values != nil))
77+
7478
// Determine the ID to import
7579
var importId string
7680
switch {
@@ -230,7 +234,7 @@ func testStepNewImportState(ctx context.Context, t testing.T, helper *plugintest
230234

231235
var importState *terraform.State
232236
err = runProviderCommand(ctx, t, func() error {
233-
importState, err = getState(ctx, t, importWd)
237+
_, importState, err = getState(ctx, t, importWd)
234238
if err != nil {
235239
return err
236240
}

helper/resource/testing_new_refresh_state.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ func testStepNewRefreshState(ctx context.Context, t testing.T, wd *plugintest.Wo
2222
var err error
2323
// Explicitly ensure prior state exists before refresh.
2424
err = runProviderCommand(ctx, t, func() error {
25-
_, err = getState(ctx, t, wd)
25+
_, _, err = getState(ctx, t, wd)
2626
if err != nil {
2727
return err
2828
}
@@ -41,7 +41,7 @@ func testStepNewRefreshState(ctx context.Context, t testing.T, wd *plugintest.Wo
4141

4242
var refreshState *terraform.State
4343
err = runProviderCommand(ctx, t, func() error {
44-
refreshState, err = getState(ctx, t, wd)
44+
_, refreshState, err = getState(ctx, t, wd)
4545
if err != nil {
4646
return err
4747
}

0 commit comments

Comments
 (0)