graph should not panic with no config

The backends replace a nil module tree with an empty one before building
the graph, so the graph command needs to do the same.
This commit is contained in:
James Bardin 2017-07-18 13:03:57 -04:00
parent 50f412bff4
commit f10163ecc7
2 changed files with 28 additions and 0 deletions

View File

@ -88,6 +88,12 @@ func (c *GraphCommand) Run(args []string) int {
return 1
}
// Building a graph may require config module to be present, even if it's
// empty.
if mod == nil && plan == nil {
mod = module.NewEmptyTree()
}
// Build the operation
opReq := c.Operation()
opReq.Module = mod

View File

@ -81,6 +81,28 @@ func TestGraph_noArgs(t *testing.T) {
}
}
func TestGraph_noConfig(t *testing.T) {
td := tempDir(t)
os.MkdirAll(td, 0755)
defer os.RemoveAll(td)
defer testChdir(t, td)()
ui := new(cli.MockUi)
c := &GraphCommand{
Meta: Meta{
testingOverrides: metaOverridesForProvider(testProvider()),
Ui: ui,
},
}
// Running the graph command without a config should not panic,
// but this may be an error at some point in the future.
args := []string{"-type", "apply"}
if code := c.Run(args); code != 0 {
t.Fatalf("bad: \n%s", ui.ErrorWriter.String())
}
}
func TestGraph_plan(t *testing.T) {
tmp, cwd := testCwd(t)
defer testFixCwd(t, tmp, cwd)