github.com/ahmet2mir/goreleaser@v0.180.3-0.20210927151101-8e5ee5a9b8c5/internal/logext/writer_test.go (about)

     1  package logext
     2  
     3  import (
     4  	"bytes"
     5  	"os"
     6  	"strconv"
     7  	"testing"
     8  
     9  	"github.com/apex/log"
    10  	"github.com/apex/log/handlers/cli"
    11  	"github.com/goreleaser/goreleaser/internal/golden"
    12  	"github.com/stretchr/testify/require"
    13  )
    14  
    15  func TestWriter(t *testing.T) {
    16  	t.Run("info", func(t *testing.T) {
    17  		for _, out := range []Output{Info, Error} {
    18  			t.Run(strconv.Itoa(int(out)), func(t *testing.T) {
    19  				t.Cleanup(func() {
    20  					cli.Default.Writer = os.Stderr
    21  				})
    22  				var b bytes.Buffer
    23  				cli.Default.Writer = &b
    24  				l, err := NewWriter(log.Fields{"foo": "bar"}, out).Write([]byte("foo\nbar\n"))
    25  				require.NoError(t, err)
    26  				require.Equal(t, 8, l)
    27  				require.Empty(t, b.String())
    28  			})
    29  		}
    30  	})
    31  
    32  	t.Run("debug", func(t *testing.T) {
    33  		for _, out := range []Output{Info, Error} {
    34  			t.Run(strconv.Itoa(int(out)), func(t *testing.T) {
    35  				t.Cleanup(func() {
    36  					cli.Default.Writer = os.Stderr
    37  					log.SetLevel(log.InfoLevel)
    38  				})
    39  				log.SetLevel(log.DebugLevel)
    40  				var b bytes.Buffer
    41  				cli.Default.Writer = &b
    42  				l, err := NewWriter(log.Fields{"foo": "bar"}, out).Write([]byte("foo\nbar\n"))
    43  				require.NoError(t, err)
    44  				require.Equal(t, 8, l)
    45  				golden.RequireEqualTxt(t, b.Bytes())
    46  			})
    47  		}
    48  	})
    49  }