github.com/muratcelep/terraform@v1.1.0-beta2-not-internal-4/not-internal/terraform/node_data_destroy_test.go (about)

     1  package terraform
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/muratcelep/terraform/not-internal/addrs"
     7  	"github.com/muratcelep/terraform/not-internal/states"
     8  )
     9  
    10  func TestNodeDataDestroyExecute(t *testing.T) {
    11  	state := states.NewState()
    12  	state.Module(addrs.RootModuleInstance).SetResourceInstanceCurrent(
    13  		addrs.Resource{
    14  			Mode: addrs.DataResourceMode,
    15  			Type: "test_instance",
    16  			Name: "foo",
    17  		}.Instance(addrs.NoKey),
    18  		&states.ResourceInstanceObjectSrc{
    19  			Status:    states.ObjectReady,
    20  			AttrsJSON: []byte(`{"dynamic":{"type":"string","value":"hello"}}`),
    21  		},
    22  		addrs.AbsProviderConfig{
    23  			Provider: addrs.NewDefaultProvider("test"),
    24  			Module:   addrs.RootModule,
    25  		},
    26  	)
    27  	ctx := &MockEvalContext{
    28  		StateState: state.SyncWrapper(),
    29  	}
    30  
    31  	node := NodeDestroyableDataResourceInstance{&NodeAbstractResourceInstance{
    32  		Addr: addrs.Resource{
    33  			Mode: addrs.DataResourceMode,
    34  			Type: "test_instance",
    35  			Name: "foo",
    36  		}.Instance(addrs.NoKey).Absolute(addrs.RootModuleInstance),
    37  	}}
    38  
    39  	diags := node.Execute(ctx, walkApply)
    40  	if diags.HasErrors() {
    41  		t.Fatalf("unexpected error: %v", diags.Err())
    42  	}
    43  
    44  	// verify resource removed from state
    45  	if state.HasManagedResourceInstanceObjects() {
    46  		t.Fatal("resources still in state after NodeDataDestroy.Execute")
    47  	}
    48  }