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  }