Skip to content

Commit bec0e88

Browse files
committed
test: Add unit test for version cmd
1 parent 1c0cf42 commit bec0e88

File tree

1 file changed

+39
-1
lines changed

1 file changed

+39
-1
lines changed

cli/root_test.go

Lines changed: 39 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,11 @@
11
package cli_test
22

33
import (
4+
"bytes"
45
"testing"
56

7+
"github.com/coder/coder/buildinfo"
8+
69
"github.com/stretchr/testify/require"
710

811
"github.com/coder/coder/cli"
@@ -15,8 +18,43 @@ func TestRoot(t *testing.T) {
1518

1619
cmd, _ := clitest.New(t, "delete")
1720

18-
cmd, err := cmd.ExecuteC()
21+
err := cmd.Execute()
1922
errStr := cli.FormatCobraError(err, cmd)
2023
require.Contains(t, errStr, "Run 'coder delete --help' for usage.")
2124
})
25+
26+
// The "-v" short flag should return the usage output, not a version output
27+
t.Run("TestVShortFlag", func(t *testing.T) {
28+
t.Parallel()
29+
30+
buf := new(bytes.Buffer)
31+
cmd, _ := clitest.New(t, "-v")
32+
cmd.SetOut(buf)
33+
34+
err := cmd.Execute()
35+
require.NoError(t, err)
36+
// Check the usage string is the output when using "-v"
37+
require.Contains(t, buf.String(), cmd.UsageString())
38+
require.Contains(t, buf.String(), cmd.Root().Long)
39+
})
40+
41+
t.Run("TestVersion", func(t *testing.T) {
42+
t.Parallel()
43+
44+
bufFlag := new(bytes.Buffer)
45+
cmd, _ := clitest.New(t, "--version")
46+
cmd.SetOut(bufFlag)
47+
err := cmd.Execute()
48+
require.NoError(t, err)
49+
50+
bufCmd := new(bytes.Buffer)
51+
cmd, _ = clitest.New(t, "version")
52+
cmd.SetOut(bufCmd)
53+
err = cmd.Execute()
54+
require.NoError(t, err)
55+
56+
require.Equal(t, bufFlag.String(), bufCmd.String(), "cmd and flag identical output")
57+
require.Contains(t, bufFlag.String(), buildinfo.Version(), "has version")
58+
require.Contains(t, bufFlag.String(), buildinfo.ExternalURL(), "has url")
59+
})
2260
}

0 commit comments

Comments
 (0)