package logx_test import ( "bytes" "context" "encoding/json" "testing" "git.yuntuo.hk/k2safe/go-omni/logx" ) func TestSetupAddsCorrelationFields(t *testing.T) { var output bytes.Buffer _, err := logx.Setup(logx.Config{Level: "info", Format: "json", Writer: &output}) if err != nil { t.Fatalf("setup logger: %v", err) } t.Cleanup(func() { _ = logx.Close() }) ctx := logx.WithRequestID(context.Background(), "request-123") ctx = logx.WithTraceID(ctx, "trace-456") logx.InfoContext(ctx, "user.created", "userId", 42) var record map[string]any if err := json.Unmarshal(output.Bytes(), &record); err != nil { t.Fatalf("decode log record: %v; output=%q", err, output.String()) } if record["msg"] != "user.created" || record["requestId"] != "request-123" || record["traceId"] != "trace-456" { t.Fatalf("unexpected log record: %#v", record) } } func TestNewRejectsUnknownLevel(t *testing.T) { if _, err := logx.New(logx.Config{Level: "verbose"}); err == nil { t.Fatal("expected unsupported level error") } }