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

     1  package newapp
     2  
     3  import (
     4  	"context"
     5  	"testing"
     6  
     7  	"github.com/gobuffalo/plugins"
     8  	"github.com/stretchr/testify/require"
     9  )
    10  
    11  func Test_Execute(t *testing.T) {
    12  	r := require.New(t)
    13  
    14  	var log []string
    15  	during := func(ctx context.Context, root string, name string, args []string) error {
    16  		log = append(log, "during", name)
    17  		return nil
    18  	}
    19  	after := func(ctx context.Context, root string, name string, args []string, err error) error {
    20  		log = append(log, "after", name)
    21  		return nil
    22  	}
    23  
    24  	plugs := []plugins.Plugin{
    25  		newapper(during),
    26  		afternewapper(after),
    27  		newapper(during),
    28  	}
    29  
    30  	ctx := context.Background()
    31  	var root string
    32  	var args []string
    33  
    34  	err := Execute(plugs, ctx, root, "coke", args)
    35  	r.NoError(err)
    36  
    37  	r.Len(log, 6)
    38  	r.Equal([]string{"during", "coke", "during", "coke", "after", "coke"}, log)
    39  }