Skip to content

Commit

Permalink
fixup broken test fixtures
Browse files Browse the repository at this point in the history
some of the minimal test provider implementations didn't check for null
values.
  • Loading branch information
jbardin committed Jun 2, 2022
1 parent c15260a commit bcc0892
Show file tree
Hide file tree
Showing 5 changed files with 38 additions and 3 deletions.
9 changes: 8 additions & 1 deletion internal/backend/local/testing.go
Expand Up @@ -62,7 +62,14 @@ func TestLocalProvider(t *testing.T, b *Local, name string, schema *terraform.Pr
p.GetProviderSchemaResponse.DataSources[name] = providers.Schema{Block: dat}
}

p.PlanResourceChangeFn = func(req providers.PlanResourceChangeRequest) providers.PlanResourceChangeResponse {
p.PlanResourceChangeFn = func(req providers.PlanResourceChangeRequest) (resp providers.PlanResourceChangeResponse) {
// this is a destroy plan,
if req.ProposedNewState.IsNull() {
resp.PlannedState = req.ProposedNewState
resp.PlannedPrivate = req.PriorPrivate
return resp
}

rSchema, _ := schema.SchemaForResourceType(addrs.ManagedResourceMode, req.TypeName)
if rSchema == nil {
rSchema = &configschema.Block{} // default schema is empty
Expand Down
9 changes: 8 additions & 1 deletion internal/command/show_test.go
Expand Up @@ -978,7 +978,14 @@ func showFixtureProvider() *terraform.MockProvider {
Private: req.Private,
}
}
p.PlanResourceChangeFn = func(req providers.PlanResourceChangeRequest) providers.PlanResourceChangeResponse {
p.PlanResourceChangeFn = func(req providers.PlanResourceChangeRequest) (resp providers.PlanResourceChangeResponse) {
// this is a destroy plan,
if req.ProposedNewState.IsNull() {
resp.PlannedState = req.ProposedNewState
resp.PlannedPrivate = req.PriorPrivate
return resp
}

idVal := req.ProposedNewState.GetAttr("id")
amiVal := req.ProposedNewState.GetAttr("ami")
if idVal.IsNull() {
Expand Down
9 changes: 8 additions & 1 deletion internal/moduletest/provider.go
Expand Up @@ -240,9 +240,16 @@ func (p *Provider) UpgradeResourceState(req providers.UpgradeResourceStateReques

// PlanResourceChange takes the current state and proposed state of a
// resource, and returns the planned final state.
func (p *Provider) PlanResourceChange(req providers.PlanResourceChangeRequest) providers.PlanResourceChangeResponse {
func (p *Provider) PlanResourceChange(req providers.PlanResourceChangeRequest) (resp providers.PlanResourceChangeResponse) {
log.Print("[TRACE] moduletest.Provider: PlanResourceChange")

// this is a destroy plan,
if req.ProposedNewState.IsNull() {
resp.PlannedState = req.ProposedNewState
resp.PlannedPrivate = req.PriorPrivate
return resp
}

var res providers.PlanResourceChangeResponse
if req.TypeName != "test_assertions" { // we only have one resource type
res.Diagnostics = res.Diagnostics.Append(fmt.Errorf("unsupported resource type %s", req.TypeName))
Expand Down
7 changes: 7 additions & 0 deletions internal/provider-simple-v6/provider.go
Expand Up @@ -85,6 +85,13 @@ func (s simple) ReadResource(req providers.ReadResourceRequest) (resp providers.
}

func (s simple) PlanResourceChange(req providers.PlanResourceChangeRequest) (resp providers.PlanResourceChangeResponse) {
if req.ProposedNewState.IsNull() {
// destroy op
resp.PlannedState = req.ProposedNewState
resp.PlannedPrivate = req.PriorPrivate
return resp
}

m := req.ProposedNewState.AsValueMap()
_, ok := m["id"]
if !ok {
Expand Down
7 changes: 7 additions & 0 deletions internal/provider-simple/provider.go
Expand Up @@ -85,6 +85,13 @@ func (s simple) ReadResource(req providers.ReadResourceRequest) (resp providers.
}

func (s simple) PlanResourceChange(req providers.PlanResourceChangeRequest) (resp providers.PlanResourceChangeResponse) {
if req.ProposedNewState.IsNull() {
// destroy op
resp.PlannedState = req.ProposedNewState
resp.PlannedPrivate = req.PriorPrivate
return resp
}

m := req.ProposedNewState.AsValueMap()
_, ok := m["id"]
if !ok {
Expand Down

0 comments on commit bcc0892

Please sign in to comment.