From a3c374b2275652ffc9a19f728c2b2ce986282ee0 Mon Sep 17 00:00:00 2001 From: James Bardin Date: Wed, 18 Sep 2019 13:59:12 -0400 Subject: [PATCH] don't lose track of private data in the ACC tests If the resource schema version is > 0, the metadata containing the timeout values was overwritten during acceptance tests. --- builtin/providers/test/resource_nested_set_test.go | 7 +------ builtin/providers/test/resource_timeout.go | 5 +++++ helper/resource/state_shim.go | 5 +++-- 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/builtin/providers/test/resource_nested_set_test.go b/builtin/providers/test/resource_nested_set_test.go index fd05f6c12..dddce0e81 100644 --- a/builtin/providers/test/resource_nested_set_test.go +++ b/builtin/providers/test/resource_nested_set_test.go @@ -646,12 +646,7 @@ resource "test_resource_nested_set" "foo" { } } `), - Check: resource.ComposeTestCheckFunc( - func(s *terraform.State) error { - fmt.Println(s) - return nil - }, - ), + Check: resource.ComposeTestCheckFunc(), }, }, }) diff --git a/builtin/providers/test/resource_timeout.go b/builtin/providers/test/resource_timeout.go index cf32bcaf5..a10717550 100644 --- a/builtin/providers/test/resource_timeout.go +++ b/builtin/providers/test/resource_timeout.go @@ -14,6 +14,11 @@ func testResourceTimeout() *schema.Resource { Update: testResourceTimeoutUpdate, Delete: testResourceTimeoutDelete, + // Due to the schema version also being stashed in the private/meta + // data, we need to ensure that it does not overwrite the map + // containing the timeouts. + SchemaVersion: 1, + Timeouts: &schema.ResourceTimeout{ Create: schema.DefaultTimeout(time.Second), Update: schema.DefaultTimeout(time.Second), diff --git a/helper/resource/state_shim.go b/helper/resource/state_shim.go index 7cf06dd9d..5ddd02020 100644 --- a/helper/resource/state_shim.go +++ b/helper/resource/state_shim.go @@ -81,9 +81,10 @@ func shimNewState(newState *states.State, providers map[string]terraform.Resourc } if i.Current.SchemaVersion != 0 { - resState.Primary.Meta = map[string]interface{}{ - "schema_version": i.Current.SchemaVersion, + if resState.Primary.Meta == nil { + resState.Primary.Meta = map[string]interface{}{} } + resState.Primary.Meta["schema_version"] = i.Current.SchemaVersion } for _, dep := range i.Current.Dependencies {