From 6b3d0ee64bf6bc75131ede299b5de033191c69fb Mon Sep 17 00:00:00 2001 From: Katy Moe Date: Mon, 15 Jun 2020 19:55:51 +0100 Subject: [PATCH] add test for terraform version --- command/version_test.go | 48 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/command/version_test.go b/command/version_test.go index 6c9ffff3bd..05a9a83ade 100644 --- a/command/version_test.go +++ b/command/version_test.go @@ -13,6 +13,54 @@ func TestVersionCommand_implements(t *testing.T) { var _ cli.Command = &VersionCommand{} } +func TestVersion(t *testing.T) { + fixtureDir := "testdata/providers-schema/basic" + td := tempDir(t) + copy.CopyDir(fixtureDir, td) + defer os.RemoveAll(td) + defer testChdir(t, td)() + + ui := new(cli.MockUi) + + providerSource, close := newMockProviderSource(t, map[string][]string{ + "test": []string{"1.2.3"}, + }) + defer close() + + m := Meta{ + testingOverrides: metaOverridesForProvider(testProvider()), + Ui: ui, + ProviderSource: providerSource, + } + + // `terrafrom init` + ic := &InitCommand{ + Meta: m, + } + if code := ic.Run([]string{}); code != 0 { + t.Fatalf("init failed\n%s", ui.ErrorWriter) + } + // flush the init output from the mock ui + ui.OutputWriter.Reset() + + // `terraform version` + c := &VersionCommand{ + Meta: m, + Version: "4.5.6", + VersionPrerelease: "foo", + } + if code := c.Run([]string{}); code != 0 { + t.Fatalf("bad: \n%s", ui.ErrorWriter.String()) + } + + actual := strings.TrimSpace(ui.OutputWriter.String()) + expected := "Terraform v4.5.6-foo\n+ provider registry.terraform.io/hashicorp/test v1.2.3" + if actual != expected { + t.Fatalf("wrong output\ngot: %#v\nwant: %#v", actual, expected) + } + +} + func TestVersion_json(t *testing.T) { fixtureDir := "testdata/providers-schema/basic" td := tempDir(t)