github.com/segakazzz/buffalo@v0.16.22-0.20210119082501-1f52048d3feb/plugins/plugcmds/available_test.go (about) 1 package plugcmds 2 3 import ( 4 "bytes" 5 "strings" 6 "testing" 7 8 "github.com/gobuffalo/events" 9 "github.com/spf13/cobra" 10 "github.com/stretchr/testify/require" 11 ) 12 13 func Test_Available_Add(t *testing.T) { 14 r := require.New(t) 15 16 a := NewAvailable() 17 err := a.Add("generate", &cobra.Command{ 18 Use: "foo", 19 Short: "generates foo", 20 Aliases: []string{"f"}, 21 }) 22 r.NoError(err) 23 24 r.Len(a.Commands(), 2) 25 } 26 27 func Test_Available_Encode(t *testing.T) { 28 r := require.New(t) 29 30 bb := &bytes.Buffer{} 31 32 a := NewAvailable() 33 err := a.Add("generate", &cobra.Command{ 34 Use: "foo", 35 Short: "generates foo", 36 Aliases: []string{"f"}, 37 }) 38 r.NoError(err) 39 40 r.NoError(a.Encode(bb)) 41 const exp = `[{"name":"foo","use_command":"foo","buffalo_command":"generate","description":"generates foo","aliases":["f"]}]` 42 r.Equal(exp, strings.TrimSpace(bb.String())) 43 } 44 45 func Test_Available_Listen(t *testing.T) { 46 r := require.New(t) 47 48 a := NewAvailable() 49 err := a.Listen(func(e events.Event) error { 50 return nil 51 }) 52 r.NoError(err) 53 54 r.Len(a.Commands(), 2) 55 }