gologger/format_test.go

55 lines
1.1 KiB
Go

package gologger
import (
"strings"
"testing"
"time"
)
func TestFormat(t *testing.T) {
tests := []struct {
name string
logEvent LogEvent
want string
}{
{
name: "Info level with format string",
logEvent: LogEvent{
Ts: time.Now(),
Category: "test_category",
Level: Info,
Data: []interface{}{"%s: %v", "key", "value"},
},
want: "test_category : INFO - key: value",
},
{
name: "Info level with one format string",
logEvent: LogEvent{
Ts: time.Now(),
Category: "test_category",
Level: Info,
Data: []interface{}{"%s", "key"},
},
want: "test_category : INFO - key",
},
{
name: "Error level without format string",
logEvent: LogEvent{
Ts: time.Now(),
Category: "test_category",
Level: Error,
Data: []interface{}{"error occurred", "additional info"},
},
want: "test_category : ERROR - error occurred additional info",
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
if got := format(tt.logEvent); strings.Index(got, tt.want) == -1 {
t.Errorf("format() = %v, want %v", got, tt.want)
}
})
}
}