mirror of
https://github.com/opentofu/opentofu.git
synced 2024-12-30 10:47:14 -06:00
17d8ec6b6f
Previously we had a bug where we'd use the resource type name instead of the provider name. Now we use the DefaultProviderConfig helper function to extract the provider name from the resource type name.
70 lines
1.3 KiB
Go
70 lines
1.3 KiB
Go
package terraform
|
|
|
|
import (
|
|
"strings"
|
|
"testing"
|
|
|
|
"github.com/hashicorp/terraform/addrs"
|
|
)
|
|
|
|
func TestRootTransformer(t *testing.T) {
|
|
mod := testModule(t, "transform-root-basic")
|
|
|
|
g := Graph{Path: addrs.RootModuleInstance}
|
|
{
|
|
tf := &ConfigTransformer{Config: mod}
|
|
if err := tf.Transform(&g); err != nil {
|
|
t.Fatalf("err: %s", err)
|
|
}
|
|
}
|
|
|
|
{
|
|
transform := &MissingProviderTransformer{
|
|
Providers: []string{"aws", "do"},
|
|
}
|
|
if err := transform.Transform(&g); err != nil {
|
|
t.Fatalf("err: %s", err)
|
|
}
|
|
}
|
|
|
|
{
|
|
transform := &ProviderTransformer{}
|
|
if err := transform.Transform(&g); err != nil {
|
|
t.Fatalf("err: %s", err)
|
|
}
|
|
}
|
|
|
|
{
|
|
transform := &RootTransformer{}
|
|
if err := transform.Transform(&g); err != nil {
|
|
t.Fatalf("err: %s", err)
|
|
}
|
|
}
|
|
|
|
actual := strings.TrimSpace(g.String())
|
|
expected := strings.TrimSpace(testTransformRootBasicStr)
|
|
if actual != expected {
|
|
t.Fatalf("wrong result\n\ngot:\n%s\n\nwant:\n%s", actual, expected)
|
|
}
|
|
|
|
root, err := g.Root()
|
|
if err != nil {
|
|
t.Fatalf("err: %s", err)
|
|
}
|
|
if _, ok := root.(graphNodeRoot); !ok {
|
|
t.Fatalf("bad: %#v", root)
|
|
}
|
|
}
|
|
|
|
const testTransformRootBasicStr = `
|
|
aws_instance.foo
|
|
provider.aws
|
|
do_droplet.bar
|
|
provider.do
|
|
provider.aws
|
|
provider.do
|
|
root
|
|
aws_instance.foo
|
|
do_droplet.bar
|
|
`
|