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 }