diff --git a/builtin/providers/test/resource_timeout_test.go b/builtin/providers/test/resource_timeout_test.go index 9edbba89a..8227bfb63 100644 --- a/builtin/providers/test/resource_timeout_test.go +++ b/builtin/providers/test/resource_timeout_test.go @@ -27,6 +27,27 @@ resource "test_resource_timeout" "foo" { }, }) } + +func TestResourceTimeout_delete(t *testing.T) { + // If the delete timeout isn't saved until destroy, the cleanup here will + // fail because the default is only 20m. + resource.UnitTest(t, resource.TestCase{ + Providers: testAccProviders, + CheckDestroy: testAccCheckResourceDestroy, + Steps: []resource.TestStep{ + resource.TestStep{ + Config: strings.TrimSpace(` +resource "test_resource_timeout" "foo" { + delete_delay = "25m" + timeouts { + delete = "30m" + } +} + `), + }, + }, + }) +} func TestResourceTimeout_update(t *testing.T) { resource.UnitTest(t, resource.TestCase{ Providers: testAccProviders, diff --git a/helper/plugin/grpc_provider.go b/helper/plugin/grpc_provider.go index 37d27c610..3bdc98898 100644 --- a/helper/plugin/grpc_provider.go +++ b/helper/plugin/grpc_provider.go @@ -574,6 +574,7 @@ func (s *GRPCProviderServer) PlanResourceChange(_ context.Context, req *proto.Pl // We don't usually plan destroys, but this can return early in any case. if proposedNewStateVal.IsNull() { resp.PlannedState = req.ProposedNewState + resp.PlannedPrivate = req.PriorPrivate return resp, nil }