package cli import ( "bytes" "testing" ) func Test_ShowAppHelp_NoAuthor(t *testing.T) { output := new(bytes.Buffer) app := NewApp() app.Writer = output c := NewContext(app, nil, nil) ShowAppHelp(c) if bytes.Index(output.Bytes(), []byte("AUTHOR(S):")) != -1 { t.Errorf("expected\n%snot to include %s", output.String(), "AUTHOR(S):") } } func Test_ShowAppHelp_NoVersion(t *testing.T) { output := new(bytes.Buffer) app := NewApp() app.Writer = output app.Version = "" c := NewContext(app, nil, nil) ShowAppHelp(c) if bytes.Index(output.Bytes(), []byte("VERSION:")) != -1 { t.Errorf("expected\n%snot to include %s", output.String(), "VERSION:") } } func Test_ShowAppHelp_HideVersion(t *testing.T) { output := new(bytes.Buffer) app := NewApp() app.Writer = output app.HideVersion = true c := NewContext(app, nil, nil) ShowAppHelp(c) if bytes.Index(output.Bytes(), []byte("VERSION:")) != -1 { t.Errorf("expected\n%snot to include %s", output.String(), "VERSION:") } } func Test_Help_Custom_Flags(t *testing.T) { oldFlag := HelpFlag defer func() { HelpFlag = oldFlag }() HelpFlag = BoolFlag{ Name: "help, x", Usage: "show help", } app := App{ Flags: []Flag{ BoolFlag{Name: "foo, h"}, }, Action: func(ctx *Context) int { if ctx.Bool("h") != true { t.Errorf("custom help flag not set") } return 0 }, } output := new(bytes.Buffer) app.Writer = output app.Run([]string{"test", "-h"}) if output.Len() > 0 { t.Errorf("unexpected output: %s", output.String()) } } func Test_Version_Custom_Flags(t *testing.T) { oldFlag := VersionFlag defer func() { VersionFlag = oldFlag }() VersionFlag = BoolFlag{ Name: "version, V", Usage: "show version", } app := App{ Flags: []Flag{ BoolFlag{Name: "foo, v"}, }, Action: func(ctx *Context) int { if ctx.Bool("v") != true { t.Errorf("custom version flag not set") } return 0 }, } output := new(bytes.Buffer) app.Writer = output app.Run([]string{"test", "-v"}) if output.Len() > 0 { t.Errorf("unexpected output: %s", output.String()) } }