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