master
go 50 lines 1.02 KB
Raw
1 package logger
2
3 import (
4 "bytes"
5 "strings"
6 "testing"
7 "time"
8
9 "github.com/stretchr/testify/assert"
10 )
11
12 func TestNew(t *testing.T) {
13 tests := map[string]*Logger{
14 "default logger": New(),
15 "nil logger": nil,
16 }
17
18 for name, logger := range tests {
19 t.Run(name, func(t *testing.T) {
20 f := func() {
21 logger.Infof("test %s", "test")
22 logger.When(true).Warning("warn").Else().Info("info")
23 logger.Once("k").Info("once")
24 logger.Limit("k", 1, time.Second).Info("limit")
25 logger.ResetAllOnce()
26 }
27 assert.NotPanics(t, f)
28 })
29 }
30 }
31
32 func TestNewWithWriter(t *testing.T) {
33 var buf bytes.Buffer
34
35 log := NewWithWriter(&buf)
36 log.Info("captured")
37
38 assert.Contains(t, buf.String(), "captured")
39 }
40
41 func TestNewWithWriter_WithKeepsWriter(t *testing.T) {
42 var buf bytes.Buffer
43
44 log := NewWithWriter(&buf).With("component", "test")
45 log.Info("captured")
46
47 out := buf.String()
48 assert.Contains(t, out, "captured")
49 assert.True(t, strings.Contains(out, "component=test") || strings.Contains(out, "\"component\":\"test\""))
50 }