github.com/qlik-oss/gopherciser@v0.18.6/logger/jsonwriter_test.go (about) 1 package logger 2 3 import ( 4 "bytes" 5 "testing" 6 ) 7 8 func TestJsonWriter(t *testing.T) { 9 t.Parallel() 10 11 buf := bytes.NewBufferString("") 12 13 isClosed := false 14 jsonLogger := CreateJSONLogger(buf, func() error { 15 isClosed = true 16 return nil 17 }) 18 19 // Set info level 20 jsonLogger.Writer.Level(InfoLevel) 21 22 msg := &LogChanMsg{ 23 message{ 24 Level: InfoLevel, 25 }, 26 SessionEntry{ 27 User: "myuser1", 28 }, 29 ActionEntry{ 30 Action: "myaction", 31 }, 32 &ephemeralEntry{ 33 Details: "mydetails", 34 Errors: 12, 35 Success: true, 36 }, 37 } 38 39 // Test rows 40 expectedString := `{"zerologlevel":"info","AppName":"","AppGUID":"","Session":0,"SessionName":"","Thread":0,"User":"myuser1","Action":"myaction","ActionId":0,"Label":"","ObjectType":"","Details":"mydetails","Errors":12,"InfoType":"","Received":0,"RequestsSent":0,"Sent":0,"Stack":"","Warnings":0,"ResponseTime":0,"level":"info","Tick":0,"time":"0001-01-01T00:00:00Z","timestamp":"0001-01-01T00:00:00Z"}` 41 expectedString += "\n" 42 if err := jsonLogger.Writer.WriteMessage(msg); err != nil { 43 t.Error() 44 } else { 45 verifyString(t, buf.String(), expectedString) 46 } 47 48 // Test ErrorLevel 49 buf.Reset() 50 jsonLogger.Writer.Level(ErrorLevel) 51 expectedString = "" 52 if err := jsonLogger.Writer.WriteMessage(msg); err != nil { 53 t.Error() 54 } else { 55 verifyString(t, buf.String(), expectedString) 56 } 57 58 buf.Reset() 59 msg.Level = ErrorLevel 60 expectedString = `{"zerologlevel":"error","AppName":"","AppGUID":"","Session":0,"SessionName":"","Thread":0,"User":"myuser1","Action":"myaction","ActionId":0,"Label":"","ObjectType":"","Details":"mydetails","Errors":12,"InfoType":"","Received":0,"RequestsSent":0,"Sent":0,"Stack":"","Warnings":0,"ResponseTime":0,"level":"error","Tick":0,"time":"0001-01-01T00:00:00Z","timestamp":"0001-01-01T00:00:00Z"}` 61 expectedString += "\n" 62 if err := jsonLogger.Writer.WriteMessage(msg); err != nil { 63 t.Error() 64 } else { 65 verifyString(t, buf.String(), expectedString) 66 } 67 68 // Test DebugLevel 69 buf.Reset() 70 jsonLogger.Writer.Level(InfoLevel) 71 msg.Level = DebugLevel 72 expectedString = "" 73 if err := jsonLogger.Writer.WriteMessage(msg); err != nil { 74 t.Error() 75 } else { 76 verifyString(t, buf.String(), expectedString) 77 } 78 79 buf.Reset() 80 jsonLogger.Writer.Level(DebugLevel) 81 expectedString = `{"zerologlevel":"debug","AppName":"","AppGUID":"","Session":0,"SessionName":"","Thread":0,"User":"myuser1","Action":"myaction","ActionId":0,"Label":"","ObjectType":"","Details":"mydetails","Errors":12,"InfoType":"","Received":0,"RequestsSent":0,"Sent":0,"Stack":"","Warnings":0,"ResponseTime":0,"level":"debug","Tick":0,"time":"0001-01-01T00:00:00Z","timestamp":"0001-01-01T00:00:00Z"}` 82 expectedString += "\n" 83 if err := jsonLogger.Writer.WriteMessage(msg); err != nil { 84 t.Error() 85 } else { 86 verifyString(t, buf.String(), expectedString) 87 } 88 89 // Test close function 90 if err := jsonLogger.Close(); err != nil { 91 t.Error("Close failed:", err) 92 } 93 if !isClosed { 94 t.Error("Test of close function failed") 95 } 96 }