72ac04e7ca
With: $ git mv vendor/github.com/{S,s}irupsen $ sed -i 's/Sirupsen/sirupsen/g' $(git grep -l Sirupsen) catching up with the upstream lowercasing [1,2,3,4]. Because of the compatibility issues discussed in [3], some consumers may prefer to use the old uppercase version until they have time to update their other Logrus consumers to the new lowercase form. [1]: https://github.com/sirupsen/logrus/blame/v1.0.3/README.md#L6 [2]: https://github.com/sirupsen/logrus/pull/384 [3]: https://github.com/sirupsen/logrus/issues/570#issuecomment-313933276 [4]: https://github.com/sirupsen/logrus/issues/553
122 lines
2.1 KiB
Go
122 lines
2.1 KiB
Go
package logrus
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
type TestHook struct {
|
|
Fired bool
|
|
}
|
|
|
|
func (hook *TestHook) Fire(entry *Entry) error {
|
|
hook.Fired = true
|
|
return nil
|
|
}
|
|
|
|
func (hook *TestHook) Levels() []Level {
|
|
return []Level{
|
|
DebugLevel,
|
|
InfoLevel,
|
|
WarnLevel,
|
|
ErrorLevel,
|
|
FatalLevel,
|
|
PanicLevel,
|
|
}
|
|
}
|
|
|
|
func TestHookFires(t *testing.T) {
|
|
hook := new(TestHook)
|
|
|
|
LogAndAssertJSON(t, func(log *Logger) {
|
|
log.Hooks.Add(hook)
|
|
assert.Equal(t, hook.Fired, false)
|
|
|
|
log.Print("test")
|
|
}, func(fields Fields) {
|
|
assert.Equal(t, hook.Fired, true)
|
|
})
|
|
}
|
|
|
|
type ModifyHook struct {
|
|
}
|
|
|
|
func (hook *ModifyHook) Fire(entry *Entry) error {
|
|
entry.Data["wow"] = "whale"
|
|
return nil
|
|
}
|
|
|
|
func (hook *ModifyHook) Levels() []Level {
|
|
return []Level{
|
|
DebugLevel,
|
|
InfoLevel,
|
|
WarnLevel,
|
|
ErrorLevel,
|
|
FatalLevel,
|
|
PanicLevel,
|
|
}
|
|
}
|
|
|
|
func TestHookCanModifyEntry(t *testing.T) {
|
|
hook := new(ModifyHook)
|
|
|
|
LogAndAssertJSON(t, func(log *Logger) {
|
|
log.Hooks.Add(hook)
|
|
log.WithField("wow", "elephant").Print("test")
|
|
}, func(fields Fields) {
|
|
assert.Equal(t, fields["wow"], "whale")
|
|
})
|
|
}
|
|
|
|
func TestCanFireMultipleHooks(t *testing.T) {
|
|
hook1 := new(ModifyHook)
|
|
hook2 := new(TestHook)
|
|
|
|
LogAndAssertJSON(t, func(log *Logger) {
|
|
log.Hooks.Add(hook1)
|
|
log.Hooks.Add(hook2)
|
|
|
|
log.WithField("wow", "elephant").Print("test")
|
|
}, func(fields Fields) {
|
|
assert.Equal(t, fields["wow"], "whale")
|
|
assert.Equal(t, hook2.Fired, true)
|
|
})
|
|
}
|
|
|
|
type ErrorHook struct {
|
|
Fired bool
|
|
}
|
|
|
|
func (hook *ErrorHook) Fire(entry *Entry) error {
|
|
hook.Fired = true
|
|
return nil
|
|
}
|
|
|
|
func (hook *ErrorHook) Levels() []Level {
|
|
return []Level{
|
|
ErrorLevel,
|
|
}
|
|
}
|
|
|
|
func TestErrorHookShouldntFireOnInfo(t *testing.T) {
|
|
hook := new(ErrorHook)
|
|
|
|
LogAndAssertJSON(t, func(log *Logger) {
|
|
log.Hooks.Add(hook)
|
|
log.Info("test")
|
|
}, func(fields Fields) {
|
|
assert.Equal(t, hook.Fired, false)
|
|
})
|
|
}
|
|
|
|
func TestErrorHookShouldFireOnError(t *testing.T) {
|
|
hook := new(ErrorHook)
|
|
|
|
LogAndAssertJSON(t, func(log *Logger) {
|
|
log.Hooks.Add(hook)
|
|
log.Error("test")
|
|
}, func(fields Fields) {
|
|
assert.Equal(t, hook.Fired, true)
|
|
})
|
|
}
|