package stonelog import ( "testing" ) func Test_LogLevelString(t *testing.T) { levelTests := []struct { level StoneLevel expected string }{ {TRACE, "TRACE"}, {DEBUG, "DEBUG"}, {INFO, "INFO"}, {WARN, "WARN"}, {ERROR, "ERROR"}, {FATAL, "FATAL"}, {PANIC, "PANIC"}, } for _, tt := range levelTests { if tt.level.String() != tt.expected { t.Errorf("Expected %s, got %s", tt.expected, tt.level.String()) } } } func Test_LogLevelColor(t *testing.T) { levelTests := []struct { level StoneLevel expected string }{ {TRACE, colorWhite}, {DEBUG, colorCyan}, {INFO, colorGreen}, {WARN, colorYellow}, {ERROR, colorRed}, {FATAL, colorMagenta}, {PANIC, colorRed + "\033[1m"}, } for _, tt := range levelTests { if tt.level.Color() != tt.expected { t.Errorf("Expected %s, got %s", tt.expected, tt.level.Color()) } } } func Test_PlainTextLogs(t *testing.T) { InitStoneLog(TRACE, false, false) Trace("This is a trace log") Debug("This is a debug log") Observation("This is an observation log") Hypothesis("This is a hypothesis log") Failure("This is a failure log") SetLogLevel(INFO) } func Test_JSONLogs(t *testing.T) { InitStoneLog(TRACE, true, false) Trace("This is a trace log") Debug("This is a debug log") Observation("This is an observation log") Hypothesis("This is a hypothesis log") Failure("This is a failure log") SetLogLevel(INFO) }