github.com/jghiloni/cli@v6.28.1-0.20170628223758-0ce05fe032a2+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  })