package main import ( "fmt" "testing" tfe "github.com/hashicorp/go-tfe" tfversion "github.com/hashicorp/terraform/version" ) func terraformConfigRequiredVariable(org, name string) string { return fmt.Sprintf(` terraform { cloud { hostname = "%s" organization = "%s" workspaces { name = "%s" } } } variable "foo" { type = string } variable "baz" { type = string } output "test_cli" { value = var.foo } output "test_env" { value = var.baz } `, tfeHostname, org, name) } func Test_cloud_run_variables(t *testing.T) { t.Parallel() skipIfMissingEnvVar(t) skipWithoutRemoteTerraformVersion(t) cases := testCases{ "run variables from CLI arg": { operations: []operationSets{ { prep: func(t *testing.T, orgName, dir string) { wsName := "new-workspace" _ = createWorkspace(t, orgName, tfe.WorkspaceCreateOptions{ Name: tfe.String(wsName), TerraformVersion: tfe.String(tfversion.String()), }) tfBlock := terraformConfigRequiredVariable(orgName, wsName) writeMainTF(t, tfBlock, dir) }, commands: []tfCommand{ { command: []string{"init"}, expectedCmdOutput: `Terraform Cloud has been successfully initialized!`, }, { command: []string{"plan", "-var", "foo=bar"}, expectedCmdOutput: ` + test_cli = "bar"`, }, { command: []string{"plan", "-var", "foo=bar"}, expectedCmdOutput: ` + test_env = "qux"`, }, }, }, }, }, } testRunner(t, cases, 1, "TF_CLI_ARGS=-no-color", "TF_VAR_baz=qux") }