Add test for logger

This commit is contained in:
mstmdev 2022-03-25 16:59:19 +08:00
parent 46516f7d85
commit 6040638a26
2 changed files with 20 additions and 4 deletions

View File

@ -38,7 +38,7 @@ var consoleColorMode = autoColor
// LoggerConfig defines the config for Logger middleware.
type LoggerConfig struct {
// Optional. Default value is gin.defaultLogFormatter
// Formatter is optional, the default value is gin.defaultLogFormatter
Formatter LogFormatter
// Output is a writer where logs are written.
@ -265,9 +265,7 @@ func LoggerWithConfig(conf LoggerConfig) HandlerFunc {
param.Path = path
if _, err := out.Write(bytesconv.StringToBytes(formatter(param))); err != nil {
fmt.Println(err)
}
out.Write(bytesconv.StringToBytes(formatter(param)))
}
}
}

View File

@ -147,6 +147,15 @@ func TestLoggerWithConfig(t *testing.T) {
assert.Contains(t, buffer.String(), "/notfound")
}
func TestLoggerWithConfigWriteError(t *testing.T) {
w := &mockErrWriter{}
router := New()
router.Use(LoggerWithConfig(LoggerConfig{Output: w}))
router.GET("/example", func(c *Context) {})
PerformRequest(router, "GET", "/example?a=100")
assert.True(t, w.triggerErrorWrite)
}
func TestLoggerWithFormatter(t *testing.T) {
buffer := new(bytes.Buffer)
@ -432,3 +441,12 @@ func TestForceConsoleColor(t *testing.T) {
// reset console color mode.
consoleColorMode = autoColor
}
type mockErrWriter struct {
triggerErrorWrite bool
}
func (w *mockErrWriter) Write(p []byte) (n int, err error) {
w.triggerErrorWrite = true
return 0, errors.New("test error writer")
}