| package tfexec | |
| import ( | |
| "context" | |
| "testing" | |
| "github.com/hashicorp/terraform-exec/tfexec/internal/testutil" | |
| ) | |
| func TestPlanCmd(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) { | |
| planCmd, err := tf.planCmd(context.Background()) | |
| if err != nil { | |
| t.Fatal(err) | |
| } | |
| assertCmd(t, []string{ | |
| "plan", | |
| "-no-color", | |
| "-input=false", | |
| "-detailed-exitcode", | |
| "-lock-timeout=0s", | |
| "-lock=true", | |
| "-parallelism=10", | |
| "-refresh=true", | |
| }, nil, planCmd) | |
| }) | |
| t.Run("override all defaults", func(t *testing.T) { | |
| planCmd, err := tf.planCmd(context.Background(), | |
| Destroy(true), | |
| Lock(false), | |
| LockTimeout("22s"), | |
| Out("whale"), | |
| Parallelism(42), | |
| Refresh(false), | |
| Replace("ford.prefect"), | |
| Replace("arthur.dent"), | |
| State("marvin"), | |
| Target("zaphod"), | |
| Target("beeblebrox"), | |
| Var("android=paranoid"), | |
| Var("brain_size=planet"), | |
| VarFile("trillian"), | |
| Dir("earth")) | |
| if err != nil { | |
| t.Fatal(err) | |
| } | |
| assertCmd(t, []string{ | |
| "plan", | |
| "-no-color", | |
| "-input=false", | |
| "-detailed-exitcode", | |
| "-lock-timeout=22s", | |
| "-out=whale", | |
| "-state=marvin", | |
| "-var-file=trillian", | |
| "-lock=false", | |
| "-parallelism=42", | |
| "-refresh=false", | |
| "-replace=ford.prefect", | |
| "-replace=arthur.dent", | |
| "-destroy", | |
| "-target=zaphod", | |
| "-target=beeblebrox", | |
| "-var", "android=paranoid", | |
| "-var", "brain_size=planet", | |
| "earth", | |
| }, nil, planCmd) | |
| }) | |
| } |