diff --git a/command/refresh_test.go b/command/refresh_test.go index 7f574e725..df0142d28 100644 --- a/command/refresh_test.go +++ b/command/refresh_test.go @@ -8,6 +8,7 @@ import ( "strings" "testing" + "bytes" "github.com/hashicorp/terraform/terraform" "github.com/mitchellh/cli" ) @@ -413,6 +414,34 @@ func TestRefresh_varFileDefault(t *testing.T) { } } +func TestRefresh_varsUnset(t *testing.T) { + // Disable test mode so input would be asked + test = false + defer func() { test = true }() + + defaultInputReader = bytes.NewBufferString("bar\n") + + state := testState() + statePath := testStateFile(t, state) + + p := testProvider() + ui := new(cli.MockUi) + c := &RefreshCommand{ + Meta: Meta{ + ContextOpts: testCtxConfig(p), + Ui: ui, + }, + } + + args := []string{ + "-state", statePath, + testFixturePath("refresh-unset-var"), + } + if code := c.Run(args); code != 0 { + t.Fatalf("bad: %d\n\n%s", code, ui.ErrorWriter.String()) + } +} + func TestRefresh_backup(t *testing.T) { state := testState() statePath := testStateFile(t, state) diff --git a/command/test-fixtures/refresh-unset-var/main.tf b/command/test-fixtures/refresh-unset-var/main.tf new file mode 100644 index 000000000..446cf70e2 --- /dev/null +++ b/command/test-fixtures/refresh-unset-var/main.tf @@ -0,0 +1,7 @@ +variable "should_ask" {} + +provider "test" {} + +resource "test_instance" "foo" { + ami = "${var.should_ask}" +}