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  `