github.com/cloudfoundry-attic/cli-with-i18n@v6.32.1-0.20171002233121-7401370d3b85+incompatible/integration/isolated/version_command_test.go (about) 1 package isolated 2 3 import ( 4 "fmt" 5 "os/exec" 6 "strings" 7 8 "code.cloudfoundry.org/cli/integration/helpers" 9 10 . "github.com/onsi/ginkgo" 11 . "github.com/onsi/ginkgo/extensions/table" 12 . "github.com/onsi/gomega" 13 . "github.com/onsi/gomega/gbytes" 14 . "github.com/onsi/gomega/gexec" 15 ) 16 17 var _ = Describe("version command", func() { 18 DescribeTable("displays version", 19 func(arg string) { 20 session := helpers.CF(arg) 21 Eventually(session).Should(Say("cf version [\\w0-9.+]+-[\\w0-9]+")) 22 Eventually(session).Should(Exit(0)) 23 }, 24 25 Entry("when passed version", "version"), 26 Entry("when passed -v", "-v"), 27 Entry("when passed --version", "--version"), 28 ) 29 30 DescribeTable("binary version substitution", 31 func(version string, sha string, date string, expectedOutput string) { 32 var ldFlags []string 33 if version != "" { 34 ldFlags = append(ldFlags, 35 fmt.Sprintf("-X code.cloudfoundry.org/cli/version.binaryVersion=%s", version)) 36 } 37 if sha != "" { 38 ldFlags = append(ldFlags, 39 fmt.Sprintf("-X code.cloudfoundry.org/cli/version.binarySHA=%s", sha)) 40 } 41 if date != "" { 42 ldFlags = append(ldFlags, 43 fmt.Sprintf("-X code.cloudfoundry.org/cli/version.binaryBuildDate=%s", date)) 44 } 45 46 path, err := Build("code.cloudfoundry.org/cli", 47 "-ldflags", 48 strings.Join(ldFlags, " "), 49 ) 50 Expect(err).ToNot(HaveOccurred()) 51 52 session, err := Start( 53 exec.Command(path, "version"), 54 GinkgoWriter, 55 GinkgoWriter) 56 Expect(err).ToNot(HaveOccurred()) 57 58 Eventually(session.Out).Should(Say(expectedOutput)) 59 Eventually(session).Should(Exit(0)) 60 61 CleanupBuildArtifacts() 62 }, 63 64 Entry("when passed no ldflags", "", "", "", "cli(\\.exe)? version 0.0.0-unknown-version"), 65 Entry("when passed just a build-sha", "", "deadbeef", "", "cli(\\.exe)? version 0.0.0-unknown-version\\+deadbeef"), 66 Entry("when passed just a build-date", "", "", "2001-01-01", "cli(\\.exe)? version 0.0.0-unknown-version\\+2001-01-01"), 67 Entry("when passed a sha and build-date", "", "deadbeef", "2001-01-01", "cli(\\.exe)? version 0.0.0-unknown-version\\+deadbeef.2001-01-01"), 68 Entry("when passed just a version", "1.1.1", "", "", "cli(\\.exe)? version 1.1.1"), 69 Entry("when passed a version and build-sha", "1.1.1", "deadbeef", "", "cli(\\.exe)? version 1.1.1\\+deadbeef"), 70 Entry("when passed a version and a build-date", "1.1.1", "", "2001-01-01", "cli(\\.exe)? version 1.1.1\\+2001-01-01"), 71 Entry("when passed a version, build-sha, and build-date", "1.1.1", "deadbeef", "2001-01-01", "cli(\\.exe)? version 1.1.1\\+deadbeef.2001-01-01"), 72 Entry("when passed a wacky version", "#$%{@+&*!", "deadbeef", "2001-01-01", "cli(\\.exe)? version 0.0.0-unknown-version\\+deadbeef.2001-01-01"), 73 ) 74 })