diff --git a/command/init_test.go b/command/init_test.go index ebfa397f1a..ef192b7e54 100644 --- a/command/init_test.go +++ b/command/init_test.go @@ -645,6 +645,49 @@ func TestInit_findVendoredProviders(t *testing.T) { } } +// make sure we can locate providers defined in the legacy rc file +func TestInit_rcProviders(t *testing.T) { + // Create a temporary working directory that is empty + td := tempDir(t) + + configDirName := "init-legacy-rc" + copy.CopyDir(testFixturePath(configDirName), filepath.Join(td, configDirName)) + defer os.RemoveAll(td) + defer testChdir(t, td)() + + pluginDir := filepath.Join(td, "custom") + pluginPath := filepath.Join(pluginDir, "terraform-provider-legacy") + + ui := new(cli.MockUi) + m := Meta{ + Ui: ui, + PluginOverrides: &PluginOverrides{ + Providers: map[string]string{ + "legacy": pluginPath, + }, + }, + } + + c := &InitCommand{ + Meta: m, + providerInstaller: &mockProviderInstaller{}, + } + + // make our plugin paths + if err := os.MkdirAll(pluginDir, 0755); err != nil { + t.Fatal(err) + } + + if err := ioutil.WriteFile(pluginPath, []byte("test bin"), 0755); err != nil { + t.Fatal(err) + } + + args := []string{configDirName} + if code := c.Run(args); code != 0 { + t.Fatalf("bad: \n%s", ui.ErrorWriter.String()) + } +} + func TestInit_getUpgradePlugins(t *testing.T) { // Create a temporary working directory that is empty td := tempDir(t) diff --git a/command/test-fixtures/init-legacy-rc/main.tf b/command/test-fixtures/init-legacy-rc/main.tf new file mode 100644 index 0000000000..4b04a89e43 --- /dev/null +++ b/command/test-fixtures/init-legacy-rc/main.tf @@ -0,0 +1 @@ +provider "legacy" {}