github.com/gobuffalo/buffalo-cli/v2@v2.0.0-alpha.15.0.20200919213536-a7350c8e6799/cli/main_test.go (about)

     1  package cli
     2  
     3  import (
     4  	"bytes"
     5  	"context"
     6  	"testing"
     7  
     8  	"github.com/gobuffalo/plugins"
     9  	"github.com/gobuffalo/plugins/plugio"
    10  	"github.com/stretchr/testify/require"
    11  )
    12  
    13  func Test_Buffalo_Help(t *testing.T) {
    14  	r := require.New(t)
    15  
    16  	stdout := &bytes.Buffer{}
    17  
    18  	b := &Buffalo{
    19  		Plugins: plugins.Plugins{
    20  			plugio.NewOuter(stdout),
    21  		},
    22  	}
    23  
    24  	ctx := context.Background()
    25  
    26  	args := []string{"-h"}
    27  
    28  	err := b.Main(ctx, "", args)
    29  	r.NoError(err)
    30  
    31  	r.Contains(stdout.String(), b.Description())
    32  }
    33  
    34  func Test_Buffalo_Main_SubCommand(t *testing.T) {
    35  	r := require.New(t)
    36  
    37  	c := &cp{}
    38  	b := &Buffalo{
    39  		Plugins: plugins.Plugins{
    40  			c,
    41  		},
    42  	}
    43  
    44  	ctx := context.Background()
    45  
    46  	args := []string{c.PluginName()}
    47  
    48  	exp := []string{"hello"}
    49  	args = append(args, exp...)
    50  
    51  	err := b.Main(ctx, "", args)
    52  	r.NoError(err)
    53  	r.Equal(exp, c.args)
    54  }
    55  
    56  func Test_Buffalo_Main_SubCommand_Alias(t *testing.T) {
    57  	r := require.New(t)
    58  
    59  	c := &cp{aliases: []string{"sc"}}
    60  	b := &Buffalo{
    61  		Plugins: plugins.Plugins{
    62  			c,
    63  		},
    64  	}
    65  
    66  	ctx := context.Background()
    67  
    68  	args := []string{"sc"}
    69  
    70  	exp := []string{"hello"}
    71  	args = append(args, exp...)
    72  
    73  	err := b.Main(ctx, "", args)
    74  	r.NoError(err)
    75  	r.Equal(exp, c.args)
    76  }