| package tfexec | 
 |  | 
 | import ( | 
 | 	"context" | 
 | 	"runtime" | 
 | 	"testing" | 
 |  | 
 | 	"github.com/hashicorp/terraform-exec/tfexec/internal/testutil" | 
 | ) | 
 |  | 
 | func TestGraphCmd_v013(t *testing.T) { | 
 | 	if runtime.GOOS == "darwin" && runtime.GOARCH == "arm64" { | 
 | 		t.Skip("Terraform for darwin/arm64 is not available until v1") | 
 | 	} | 
 |  | 
 | 	td := t.TempDir() | 
 |  | 
 | 	tf, err := NewTerraform(td, tfVersion(t, testutil.Latest013)) | 
 | 	if err != nil { | 
 | 		t.Fatal(err) | 
 | 	} | 
 |  | 
 | 	// empty env, to avoid environ mismatch in testing | 
 | 	tf.SetEnv(map[string]string{}) | 
 |  | 
 | 	t.Run("defaults", func(t *testing.T) { | 
 | 		graphCmd, _ := tf.graphCmd(context.Background()) | 
 |  | 
 | 		assertCmd(t, []string{ | 
 | 			"graph", | 
 | 		}, nil, graphCmd) | 
 | 	}) | 
 |  | 
 | 	t.Run("override all defaults", func(t *testing.T) { | 
 | 		graphCmd, _ := tf.graphCmd(context.Background(), | 
 | 			GraphPlan("teststate"), | 
 | 			DrawCycles(true), | 
 | 			GraphType("output")) | 
 |  | 
 | 		assertCmd(t, []string{ | 
 | 			"graph", | 
 | 			"teststate", | 
 | 			"-draw-cycles", | 
 | 			"-type=output", | 
 | 		}, nil, graphCmd) | 
 | 	}) | 
 | } | 
 |  | 
 | func TestGraphCmd_v1(t *testing.T) { | 
 | 	td := t.TempDir() | 
 |  | 
 | 	tf, err := NewTerraform(td, tfVersion(t, testutil.Latest_v1)) | 
 | 	if err != nil { | 
 | 		t.Fatal(err) | 
 | 	} | 
 |  | 
 | 	// empty env, to avoid environ mismatch in testing | 
 | 	tf.SetEnv(map[string]string{}) | 
 |  | 
 | 	t.Run("defaults", func(t *testing.T) { | 
 | 		graphCmd, _ := tf.graphCmd(context.Background()) | 
 |  | 
 | 		assertCmd(t, []string{ | 
 | 			"graph", | 
 | 		}, nil, graphCmd) | 
 | 	}) | 
 |  | 
 | 	t.Run("override all defaults", func(t *testing.T) { | 
 | 		graphCmd, _ := tf.graphCmd(context.Background(), | 
 | 			GraphPlan("teststate"), | 
 | 			DrawCycles(true), | 
 | 			GraphType("output")) | 
 |  | 
 | 		assertCmd(t, []string{ | 
 | 			"graph", | 
 | 			"-plan=teststate", | 
 | 			"-draw-cycles", | 
 | 			"-type=output", | 
 | 		}, nil, graphCmd) | 
 | 	}) | 
 | } |