github.com/kanishk98/terraform@v1.3.0-dev.0.20220917174235-661ca8088a6a/internal/terraform/transform_root_test.go (about)

     1  package terraform
     2  
     3  import (
     4  	"strings"
     5  	"testing"
     6  
     7  	"github.com/hashicorp/terraform/internal/addrs"
     8  )
     9  
    10  func TestRootTransformer(t *testing.T) {
    11  	mod := testModule(t, "transform-root-basic")
    12  
    13  	g := Graph{Path: addrs.RootModuleInstance}
    14  	{
    15  		tf := &ConfigTransformer{Config: mod}
    16  		if err := tf.Transform(&g); err != nil {
    17  			t.Fatalf("err: %s", err)
    18  		}
    19  	}
    20  
    21  	{
    22  		transform := &MissingProviderTransformer{}
    23  		if err := transform.Transform(&g); err != nil {
    24  			t.Fatalf("err: %s", err)
    25  		}
    26  	}
    27  
    28  	{
    29  		transform := &ProviderTransformer{}
    30  		if err := transform.Transform(&g); err != nil {
    31  			t.Fatalf("err: %s", err)
    32  		}
    33  	}
    34  
    35  	{
    36  		transform := &RootTransformer{}
    37  		if err := transform.Transform(&g); err != nil {
    38  			t.Fatalf("err: %s", err)
    39  		}
    40  	}
    41  
    42  	actual := strings.TrimSpace(g.String())
    43  	expected := strings.TrimSpace(testTransformRootBasicStr)
    44  	if actual != expected {
    45  		t.Fatalf("wrong result\n\ngot:\n%s\n\nwant:\n%s", actual, expected)
    46  	}
    47  
    48  	root, err := g.Root()
    49  	if err != nil {
    50  		t.Fatalf("err: %s", err)
    51  	}
    52  	if _, ok := root.(graphNodeRoot); !ok {
    53  		t.Fatalf("bad: %#v", root)
    54  	}
    55  }
    56  
    57  const testTransformRootBasicStr = `
    58  aws_instance.foo
    59    provider["registry.terraform.io/hashicorp/aws"]
    60  do_droplet.bar
    61    provider["registry.terraform.io/hashicorp/do"]
    62  provider["registry.terraform.io/hashicorp/aws"]
    63  provider["registry.terraform.io/hashicorp/do"]
    64  root
    65    aws_instance.foo
    66    do_droplet.bar
    67  `