github.com/hugorut/terraform@v1.1.3/src/terraform/transform_diff_test.go (about) 1 package terraform 2 3 import ( 4 "strings" 5 "testing" 6 7 "github.com/zclconf/go-cty/cty" 8 9 "github.com/hugorut/terraform/src/addrs" 10 "github.com/hugorut/terraform/src/plans" 11 ) 12 13 func TestDiffTransformer_nilDiff(t *testing.T) { 14 g := Graph{Path: addrs.RootModuleInstance} 15 tf := &DiffTransformer{} 16 if err := tf.Transform(&g); err != nil { 17 t.Fatalf("err: %s", err) 18 } 19 20 if len(g.Vertices()) > 0 { 21 t.Fatal("graph should be empty") 22 } 23 } 24 25 func TestDiffTransformer(t *testing.T) { 26 g := Graph{Path: addrs.RootModuleInstance} 27 28 beforeVal, err := plans.NewDynamicValue(cty.StringVal(""), cty.String) 29 if err != nil { 30 t.Fatal(err) 31 } 32 afterVal, err := plans.NewDynamicValue(cty.StringVal(""), cty.String) 33 if err != nil { 34 t.Fatal(err) 35 } 36 37 tf := &DiffTransformer{ 38 Changes: &plans.Changes{ 39 Resources: []*plans.ResourceInstanceChangeSrc{ 40 { 41 Addr: addrs.Resource{ 42 Mode: addrs.ManagedResourceMode, 43 Type: "aws_instance", 44 Name: "foo", 45 }.Instance(addrs.NoKey).Absolute(addrs.RootModuleInstance), 46 ProviderAddr: addrs.AbsProviderConfig{ 47 Provider: addrs.NewDefaultProvider("aws"), 48 Module: addrs.RootModule, 49 }, 50 ChangeSrc: plans.ChangeSrc{ 51 Action: plans.Update, 52 Before: beforeVal, 53 After: afterVal, 54 }, 55 }, 56 }, 57 }, 58 } 59 if err := tf.Transform(&g); err != nil { 60 t.Fatalf("err: %s", err) 61 } 62 63 actual := strings.TrimSpace(g.String()) 64 expected := strings.TrimSpace(testTransformDiffBasicStr) 65 if actual != expected { 66 t.Fatalf("bad:\n\n%s", actual) 67 } 68 } 69 70 const testTransformDiffBasicStr = ` 71 aws_instance.foo 72 `