| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- package log
- import (
- "bytes"
- "encoding/json"
- "strings"
- "testing"
- "github.com/rs/zerolog"
- )
- func TestGetLogger(t *testing.T) {
- initialLogger := GetLogger()
- if initialLogger == nil {
- t.Error("GetLogger() returned nil")
- }
- secondLogger := GetLogger()
- if initialLogger != secondLogger {
- t.Error("GetLogger() returned different loggers on subsequent calls")
- }
- }
- func TestSetLogger(t *testing.T) {
- var buf bytes.Buffer
- newLogger := zerolog.New(&buf).With().Str("test", "value").Logger()
- SetLogger(&newLogger)
- // Log a message using the global logger
- Infof("Test message")
- // Parse the logged message
- loggedData := parseLogMessage(t, buf.String())
- // Check if the "test" field is present in the logged message
- if value, exists := loggedData["test"]; !exists || value != "value" {
- t.Error("SetLogger() did not set the logger with expected context")
- }
- }
- func TestLoggerConsistency(t *testing.T) {
- var buf bytes.Buffer
- newLogger := zerolog.New(&buf).With().Str("test", "consistency").Logger()
- SetLogger(&newLogger)
- // Log a message using the global logger
- Infof("Consistency test message")
- // Parse the logged message
- loggedData := parseLogMessage(t, buf.String())
- // Check if the "test" field is present in the logged message
- if value, exists := loggedData["test"]; !exists || value != "consistency" {
- t.Error("Logger inconsistency: Updated logger does not have expected context")
- }
- }
- func parseLogMessage(t *testing.T, logMessage string) map[string]interface{} {
- var loggedData map[string]interface{}
- if err := json.Unmarshal([]byte(strings.TrimSpace(logMessage)), &loggedData); err != nil {
- t.Fatalf("Failed to parse logged message: %v", err)
- }
- return loggedData
- }
|