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  }