summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--internal/logging/logging_test.go48
1 files changed, 48 insertions, 0 deletions
diff --git a/internal/logging/logging_test.go b/internal/logging/logging_test.go
new file mode 100644
index 0000000..be8c93f
--- /dev/null
+++ b/internal/logging/logging_test.go
@@ -0,0 +1,48 @@
+package logging
+
+import (
+ "bytes"
+ "log"
+ "strings"
+ "testing"
+)
+
+func TestLogf_WithBindAndPreview(t *testing.T) {
+ var buf bytes.Buffer
+ l := log.New(&buf, "", 0)
+ Bind(l)
+
+ SetLogPreviewLimit(5)
+ if got := PreviewForLog("abcdef"); got != "abcde…" {
+ t.Fatalf("preview truncation failed: %q", got)
+ }
+ if got := PreviewForLog("abcd"); got != "abcd" {
+ t.Fatalf("preview (no trunc) failed: %q", got)
+ }
+ SetLogPreviewLimit(0)
+ if got := PreviewForLog("abcdef"); got != "abcdef" {
+ t.Fatalf("preview unlimited failed: %q", got)
+ }
+
+ Logf("mod ", "hello %s", "world")
+ out := buf.String()
+ if !strings.Contains(out, "hello world") || !strings.Contains(out, AnsiBase) || !strings.Contains(out, AnsiReset) {
+ t.Fatalf("log output missing parts: %q", out)
+ }
+}
+
+func TestChatLogger_LogStart(t *testing.T) {
+ var buf bytes.Buffer
+ Bind(log.New(&buf, "", 0))
+ SetLogPreviewLimit(3)
+ cl := NewChatLogger("prov")
+ msgs := []struct{ Role, Content string }{{"user", "abcdef"}, {"assistant", "xyz"}}
+ cl.LogStart(true, "m", 0.2, 128, []string{"END"}, msgs)
+ out := buf.String()
+ if !strings.Contains(out, "stream start model=m") || !strings.Contains(out, "messages=2") {
+ t.Fatalf("missing header log: %q", out)
+ }
+ if !strings.Contains(out, "msg[0] role=user") || !strings.Contains(out, "preview=") {
+ t.Fatalf("missing message logs: %q", out)
+ }
+}