73 lines
1.4 KiB
Go
73 lines
1.4 KiB
Go
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)
|
|
})
|
|
}
|