go-kit/log/log_test.go

73 lines
1.4 KiB
Go
Raw Normal View History

package log_test
import (
"bytes"
"fmt"
"testing"
"git.sr.ht/~ewintr/go-kit/log"
"git.sr.ht/~ewintr/go-kit/test"
)
func TestNewWriter(t *testing.T) {
defaultMessage := "this is a test"
for _, tc := range []struct {
m string
message string
expected []string
notExpected []string
}{
{
m: "string input",
message: defaultMessage,
expected: []string{
fmt.Sprintf(`"message":%q`, defaultMessage),
},
},
{
m: "json map",
message: fmt.Sprintf(`{"message":%q, "custom": "value"}`, defaultMessage),
expected: []string{
fmt.Sprintf(`"message":%q`, defaultMessage),
`"fields":{`,
`"custom":"value"`,
},
},
{
m: "json map correct time",
message: fmt.Sprintf(`{"message":%q, "time": "value"}`, defaultMessage),
expected: []string{
fmt.Sprintf(`"message":%q`, defaultMessage),
`"time":"`,
},
notExpected: []string{
`"fields":{`,
`"time": "value"`,
},
},
} {
var buf bytes.Buffer
logger := log.NewLogger(&buf)
t.Run(tc.m, func(t *testing.T) {
w := log.NewWriter(logger)
w.Write([]byte(tc.message))
for _, e := range tc.expected {
test.Includes(t, e, buf.String())
}
for _, e := range tc.notExpected {
test.NotIncludes(t, e, buf.String())
}
})
}
}
func TestLog(t *testing.T) {
t.Run("new-logger", func(t *testing.T) {
var buf bytes.Buffer
logger := log.NewLogger(&buf)
test.NotZero(t, logger)
})
}