1package tessen 2 3import ( 4 "errors" 5 "testing" 6 7 corev2 "github.com/sensu/sensu-go/api/core/v2" 8 client "github.com/sensu/sensu-go/cli/client/testing" 9 test "github.com/sensu/sensu-go/cli/commands/testing" 10 "github.com/stretchr/testify/assert" 11 "github.com/stretchr/testify/mock" 12 "github.com/stretchr/testify/require" 13) 14 15func TestInfoCommand(t *testing.T) { 16 assert := assert.New(t) 17 18 cli := test.NewCLI() 19 cmd := InfoCommand(cli) 20 21 assert.NotNil(cmd, "cmd should be returned") 22 assert.NotNil(cmd.RunE, "cmd should be able to be executed") 23 assert.Regexp("info", cmd.Use) 24 assert.Regexp("tessen", cmd.Short) 25} 26 27func TestInfoCommandRunEClosure(t *testing.T) { 28 assert := assert.New(t) 29 30 cli := test.NewCLI() 31 client := cli.Client.(*client.MockClient) 32 client.On("Get", mock.Anything, &corev2.TessenConfig{OptOut: false}).Return(nil) 33 34 cmd := InfoCommand(cli) 35 out, err := test.RunCmd(cmd, []string{}) 36 require.NoError(t, err) 37 38 assert.NotEmpty(out) 39 assert.Contains(out, "false") 40} 41 42func TestInfoCommandWithArgs(t *testing.T) { 43 assert := assert.New(t) 44 45 cli := test.NewCLI() 46 cmd := InfoCommand(cli) 47 out, err := test.RunCmd(cmd, []string{"arg"}) 48 require.Error(t, err) 49 50 assert.NotEmpty(out) 51 assert.Contains(out, "Usage") 52} 53 54func TestInfoCommandRunEClosureWithTable(t *testing.T) { 55 assert := assert.New(t) 56 57 cli := test.NewCLI() 58 client := cli.Client.(*client.MockClient) 59 client.On("Get", mock.Anything, &corev2.TessenConfig{OptOut: false}).Return(nil) 60 61 cmd := InfoCommand(cli) 62 require.NoError(t, cmd.Flags().Set("format", "tabular")) 63 64 out, err := test.RunCmd(cmd, []string{}) 65 require.NoError(t, err) 66 67 assert.NotEmpty(out) 68 assert.Contains(out, "Opt-Out") 69} 70 71func TestInfoCommandRunEClosureWithErr(t *testing.T) { 72 assert := assert.New(t) 73 74 cli := test.NewCLI() 75 client := cli.Client.(*client.MockClient) 76 client.On("Get", mock.Anything, &corev2.TessenConfig{OptOut: false}).Return(errors.New("err")) 77 78 cmd := InfoCommand(cli) 79 out, err := test.RunCmd(cmd, []string{}) 80 81 assert.NotNil(err) 82 assert.Equal("err", err.Error()) 83 assert.Empty(out) 84} 85