github.com/julianthome/gore@v0.0.0-20231109011145-b3a6bbe6fe55/cli/cli_test.go (about) 1 package cli 2 3 import ( 4 "strings" 5 "testing" 6 7 "github.com/stretchr/testify/assert" 8 "github.com/stretchr/testify/require" 9 10 "github.com/x-motemen/gore" 11 ) 12 13 func TestCliRun_Version(t *testing.T) { 14 var stdout, stderr strings.Builder 15 c := &cli{&stdout, &stderr} 16 code := c.run([]string{"-version"}) 17 require.Equal(t, exitCodeOK, code) 18 19 assert.Contains(t, stdout.String(), "gore "+gore.Version) 20 assert.Equal(t, "", stderr.String()) 21 } 22 23 func TestCliRun_Help(t *testing.T) { 24 var stdout, stderr strings.Builder 25 c := &cli{&stdout, &stderr} 26 code := c.run([]string{"-help"}) 27 require.Equal(t, exitCodeOK, code) 28 29 assert.Contains(t, stdout.String(), "gore -") 30 assert.Contains(t, stdout.String(), "Options:") 31 assert.Equal(t, "", stderr.String()) 32 } 33 34 func TestCliRun_Unknown(t *testing.T) { 35 var stdout, stderr strings.Builder 36 c := &cli{&stdout, &stderr} 37 code := c.run([]string{"-foobar"}) 38 require.Equal(t, exitCodeErr, code) 39 40 assert.Contains(t, stdout.String(), "gore -") 41 assert.Contains(t, stderr.String(), "flag provided but not defined: -foobar") 42 }