github.com/joselitofilho/goreleaser@v0.155.1-0.20210123221854-e4891856c593/cmd/completion_test.go (about) 1 package cmd 2 3 import ( 4 "bytes" 5 "testing" 6 7 "github.com/stretchr/testify/require" 8 ) 9 10 func TestCompletionGeneration(t *testing.T) { 11 for _, shell := range []string{"bash", "zsh", "fish"} { 12 t.Run(shell, func(t *testing.T) { 13 completionCmd := newCompletionCmd().cmd 14 stdout := bytes.NewBufferString("") 15 stderr := bytes.NewBufferString("") 16 completionCmd.SetOut(stdout) 17 completionCmd.SetErr(stderr) 18 completionCmd.SetArgs([]string{shell}) 19 err := completionCmd.Execute() 20 require.NoError(t, err, shell+" arg experienced error with goreleaser completion:\n"+stderr.String()) 21 require.Equal(t, "", stderr.String(), shell+" arg experienced error with goreleaser completion:\n"+stderr.String()) 22 require.NotEmpty(t, stdout.String(), shell+" arg reported nothing to stdout with goreleaser completion") 23 }) 24 } 25 }