package terraform import ( "strings" "testing" ) func TestTargetsTransformer(t *testing.T) { mod := testModule(t, "transform-targets-basic") g := Graph{Path: RootModulePath} { tf := &ConfigTransformer{Module: mod} if err := tf.Transform(&g); err != nil { t.Fatalf("err: %s", err) } } { transform := &AttachResourceConfigTransformer{Module: mod} if err := transform.Transform(&g); err != nil { t.Fatalf("err: %s", err) } } { transform := &ReferenceTransformer{} if err := transform.Transform(&g); err != nil { t.Fatalf("err: %s", err) } } { transform := &TargetsTransformer{Targets: []string{"aws_instance.me"}} if err := transform.Transform(&g); err != nil { t.Fatalf("err: %s", err) } } actual := strings.TrimSpace(g.String()) expected := strings.TrimSpace(` aws_instance.me aws_subnet.me aws_subnet.me aws_vpc.me aws_vpc.me `) if actual != expected { t.Fatalf("bad:\n\nexpected:\n%s\n\ngot:\n%s\n", expected, actual) } } func TestTargetsTransformer_destroy(t *testing.T) { mod := testModule(t, "transform-targets-destroy") g := Graph{Path: RootModulePath} { tf := &ConfigTransformer{Module: mod} if err := tf.Transform(&g); err != nil { t.Fatalf("err: %s", err) } } { transform := &AttachResourceConfigTransformer{Module: mod} if err := transform.Transform(&g); err != nil { t.Fatalf("err: %s", err) } } { transform := &ReferenceTransformer{} if err := transform.Transform(&g); err != nil { t.Fatalf("err: %s", err) } } { transform := &TargetsTransformer{ Targets: []string{"aws_instance.me"}, Destroy: true, } if err := transform.Transform(&g); err != nil { t.Fatalf("err: %s", err) } } actual := strings.TrimSpace(g.String()) expected := strings.TrimSpace(` aws_elb.me aws_instance.me aws_instance.me aws_instance.metoo aws_instance.me `) if actual != expected { t.Fatalf("bad:\n\nexpected:\n%s\n\ngot:\n%s\n", expected, actual) } }