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 }