add testcase

Signed-off-by: jsvisa <delweng@gmail.com>
This commit is contained in:
jsvisa 2025-06-17 14:34:10 +00:00
parent 8904ae9d26
commit 1fd78c99e2

View file

@ -1,6 +1,7 @@
package log package log
import ( import (
"log/slog"
"math/rand" "math/rand"
"testing" "testing"
) )
@ -22,3 +23,63 @@ func BenchmarkPrettyUint64Logfmt(b *testing.B) {
sink = appendUint64(buf, rand.Uint64(), false) sink = appendUint64(buf, rand.Uint64(), false)
} }
} }
// testStringer implements both TerminalStringer and fmt.Stringer
type testStringer struct{}
func (t testStringer) String() string {
return "full string representation"
}
func (t testStringer) TerminalString() string {
return "terminal string representation"
}
func TestFormatSlogValue(t *testing.T) {
tests := []struct {
name string
level slog.Level
value slog.Value
expected string
}{
{
name: "DEBUG level uses String()",
level: slog.LevelDebug,
value: slog.AnyValue(testStringer{}),
expected: `"full string representation"`,
},
{
name: "TRACE level uses String()",
level: LevelTrace,
value: slog.AnyValue(testStringer{}),
expected: `"full string representation"`,
},
{
name: "INFO level uses TerminalString()",
level: slog.LevelInfo,
value: slog.AnyValue(testStringer{}),
expected: `"terminal string representation"`,
},
{
name: "WARN level uses TerminalString()",
level: slog.LevelWarn,
value: slog.AnyValue(testStringer{}),
expected: `"terminal string representation"`,
},
{
name: "ERROR level uses TerminalString()",
level: slog.LevelError,
value: slog.AnyValue(testStringer{}),
expected: `"terminal string representation"`,
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
result := FormatSlogValue(tt.level, tt.value, nil)
if string(result) != tt.expected {
t.Errorf("FormatSlogValue() = '%v', want '%v'", string(result), tt.expected)
}
})
}
}