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  }