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