github.com/tilt-dev/tilt@v0.33.15-0.20240515162809-0a22ed45d8a0/pkg/logger/prefixed_logger_test.go (about)

     1  package logger
     2  
     3  import (
     4  	"bytes"
     5  	"testing"
     6  
     7  	"github.com/stretchr/testify/assert"
     8  )
     9  
    10  func TestPrefixedLogger(t *testing.T) {
    11  	tf := newPrefixedLoggerTestFixture(t, "XXX")
    12  	tf.Write("hello world")
    13  	tf.AssertContentsEqual("XXXhello world")
    14  }
    15  
    16  func TestPrefixedLoggerStartsWithNewline(t *testing.T) {
    17  	tf := newPrefixedLoggerTestFixture(t, "XXX")
    18  	tf.Write("\nhello world")
    19  	tf.AssertContentsEqual("XXX\nXXXhello world")
    20  }
    21  
    22  func TestPrefixedLoggerEndsWithNewline(t *testing.T) {
    23  	tf := newPrefixedLoggerTestFixture(t, "XXX")
    24  	tf.Write("hello world\n")
    25  	tf.Write("foobar")
    26  	tf.AssertContentsEqual("XXXhello world\nXXXfoobar")
    27  }
    28  
    29  func TestPrefixedLoggerNewlineInMiddle(t *testing.T) {
    30  	tf := newPrefixedLoggerTestFixture(t, "XXX")
    31  	tf.Write("hello\nworld")
    32  	tf.Write("foobar")
    33  	tf.AssertContentsEqual("XXXhello\nXXXworldfoobar")
    34  }
    35  
    36  type prefixedLoggerTestFixture struct {
    37  	buf    *bytes.Buffer
    38  	logger *prefixedLogger
    39  	t      *testing.T
    40  }
    41  
    42  func newPrefixedLoggerTestFixture(t *testing.T, prefix string) prefixedLoggerTestFixture {
    43  	buf := bytes.NewBuffer(make([]byte, 0))
    44  	original := NewLogger(InfoLvl, buf)
    45  	return prefixedLoggerTestFixture{logger: NewPrefixedLogger(prefix, original), buf: buf, t: t}
    46  }
    47  
    48  func (p prefixedLoggerTestFixture) Write(s string) {
    49  	p.logger.Write(InfoLvl, []byte(s))
    50  }
    51  
    52  func (p prefixedLoggerTestFixture) AssertContentsEqual(expected string) {
    53  	assert.Equal(p.t, expected, p.buf.String())
    54  }