8 "github.com/stretchr/testify/require"
11 func TestVersionCommandPrintsBuildVersion(t *testing.T) {
13 version = "test-version"
18 require.Equal(t, "test-version\n", commandOutput(t, "version"))
21 func TestHelpListsVersionCommand(t *testing.T) {
22 require.Contains(t, commandOutput(t, "help"), " version show the build version\n")
25 func TestHelpListsTheImportTargetFlag(t *testing.T) {
26 help := commandOutput(t, "help")
27 require.Contains(t, help, "import [-n] [--agent NAME] ZIP...")
28 require.Contains(t, help, "--agent NAME import into an existing direct child (default: root)")
31 func TestHelpListsTheRootNotificationCommand(t *testing.T) {
32 require.Contains(t, commandOutput(t, "help"), "notify --source SOURCE --id ID --text TEXT")
33 require.Contains(t, commandOutput(t, "notify", "--help"), "not processed")
36 func commandOutput(t *testing.T, args ...string) string {
39 reader, writer, err := os.Pipe()
40 require.NoError(t, err)
42 originalArgs, originalStdout := os.Args, os.Stdout
43 os.Args = append([]string{"onechat"}, args...)
46 os.Args, os.Stdout = originalArgs, originalStdout
48 require.NoError(t, reader.Close())
52 require.NoError(t, err)
54 require.NoError(t, writer.Close())
56 output, err := io.ReadAll(reader)
57 require.NoError(t, err)