diff --git a/helper/resource/testing.go b/helper/resource/testing.go index 11b1a5cd6..d7de1a030 100644 --- a/helper/resource/testing.go +++ b/helper/resource/testing.go @@ -406,6 +406,10 @@ func Test(t TestT, c TestCase) { step) } else { if step.ImportState { + if step.Config == "" { + step.Config = testProviderConfig(c) + } + // Can optionally set step.Config in addition to // step.ImportState, to provide config for the import. state, err = testStepImportState(opts, state, step) @@ -499,6 +503,18 @@ func Test(t TestT, c TestCase) { } } +// testProviderConfig takes the list of Providers in a TestCase and returns a +// config with only empty provider blocks. This is useful for Import, where no +// config is provided, but the providers must be defined. +func testProviderConfig(c TestCase) string { + var lines []string + for p := range c.Providers { + lines = append(lines, fmt.Sprintf("provider %q {}\n", p)) + } + + return strings.Join(lines, "") +} + // testProviderResolver is a helper to build a ResourceProviderResolver // with pre instantiated ResourceProviders, so that we can reset them for the // test, while only calling the factory function once.