From 619fa61f0bfaeeef9439f12081eb52328bd621b7 Mon Sep 17 00:00:00 2001 From: James Bardin Date: Wed, 1 Jun 2022 16:16:20 -0400 Subject: [PATCH] have mockProvider always check it was configured We do this already for other calls, but skipped UpgradeResourceState since it wasn't previously possible to configure during a destroy plan. --- internal/terraform/node_resource_abstract_test.go | 7 +++++++ internal/terraform/provider_mock.go | 5 +++++ 2 files changed, 12 insertions(+) diff --git a/internal/terraform/node_resource_abstract_test.go b/internal/terraform/node_resource_abstract_test.go index 42486d6134..352cc1bb6a 100644 --- a/internal/terraform/node_resource_abstract_test.go +++ b/internal/terraform/node_resource_abstract_test.go @@ -121,6 +121,9 @@ func TestNodeAbstractResource_ReadResourceInstanceState(t *testing.T) { }, }, }) + // This test does not configure the provider, but the mock provider will + // check that this was called and report errors. + mockProvider.ConfigureProviderCalled = true tests := map[string]struct { State *states.State @@ -158,6 +161,7 @@ func TestNodeAbstractResource_ReadResourceInstanceState(t *testing.T) { ctx.StateState = test.State.SyncWrapper() ctx.PathPath = addrs.RootModuleInstance ctx.ProviderSchemaSchema = mockProvider.ProviderSchema() + ctx.ProviderProvider = providers.Interface(mockProvider) got, readDiags := test.Node.readResourceInstanceState(ctx, test.Node.Addr.Resource.Instance(addrs.NoKey).Absolute(addrs.RootModuleInstance)) @@ -183,6 +187,9 @@ func TestNodeAbstractResource_ReadResourceInstanceStateDeposed(t *testing.T) { }, }, }) + // This test does not configure the provider, but the mock provider will + // check that this was called and report errors. + mockProvider.ConfigureProviderCalled = true tests := map[string]struct { State *states.State diff --git a/internal/terraform/provider_mock.go b/internal/terraform/provider_mock.go index b6988f6eb6..ae6d6a6ef1 100644 --- a/internal/terraform/provider_mock.go +++ b/internal/terraform/provider_mock.go @@ -218,6 +218,11 @@ func (p *MockProvider) UpgradeResourceState(r providers.UpgradeResourceStateRequ p.Lock() defer p.Unlock() + if !p.ConfigureProviderCalled { + resp.Diagnostics = resp.Diagnostics.Append(fmt.Errorf("Configure not called before UpgradeResourceState %q", r.TypeName)) + return resp + } + schema, ok := p.getProviderSchema().ResourceTypes[r.TypeName] if !ok { resp.Diagnostics = resp.Diagnostics.Append(fmt.Errorf("no schema found for %q", r.TypeName))