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 }