|
7 | 7 | "log" |
8 | 8 | "log/syslog" |
9 | 9 | "os" |
| 10 | + "reflect" |
10 | 11 | "strings" |
11 | 12 | "testing" |
12 | 13 | "time" |
@@ -251,6 +252,41 @@ func TestNewLogger_WrapNew(t *testing.T) { |
251 | 252 | assert.Equal(t, 4, i) |
252 | 253 | } |
253 | 254 |
|
| 255 | +func TestNewLogger_WrapNewErrorHandler(t *testing.T) { |
| 256 | + mockHandlerCalled := false |
| 257 | + mockHandler := func(entry logger.Entry) error { |
| 258 | + mockHandlerCalled = true |
| 259 | + assert.Equal(t, "l message", entry.Message) |
| 260 | + assert.Equal(t, logger.DebugLevel, entry.Level) |
| 261 | + assert.Equal(t, logger.Context{}, *entry.Context) |
| 262 | + |
| 263 | + return errors.New("my handler error") |
| 264 | + } |
| 265 | + errorHandlerCalled := false |
| 266 | + l := logger.NewLogger(mockHandler) |
| 267 | + l.ErrorHandler = func(err error, entry logger.Entry) { |
| 268 | + errorHandlerCalled = true |
| 269 | + assert.EqualError(t, err, "my handler error") |
| 270 | + } |
| 271 | + |
| 272 | + l2 := l.WrapNew() |
| 273 | + |
| 274 | + ptr1 := reflect.ValueOf(l.ErrorHandler).Pointer() |
| 275 | + ptr2 := reflect.ValueOf(l2.(*logger.Logger).ErrorHandler).Pointer() |
| 276 | + assert.Equal(t, ptr1, ptr2) |
| 277 | + |
| 278 | + l.Debug("l message") |
| 279 | + assert.True(t, mockHandlerCalled) |
| 280 | + assert.True(t, errorHandlerCalled) |
| 281 | + |
| 282 | + mockHandlerCalled = false |
| 283 | + errorHandlerCalled = false |
| 284 | + |
| 285 | + l2.Debug("l message") |
| 286 | + assert.True(t, mockHandlerCalled) |
| 287 | + assert.True(t, errorHandlerCalled) |
| 288 | +} |
| 289 | + |
254 | 290 | // ===================================================================================================================== |
255 | 291 | // ================================================= EXAMPLES ========================================================== |
256 | 292 | // ===================================================================================================================== |
|
0 commit comments