feat: bootstrap reusable GoOmni framework
This commit is contained in:
37
logx/logx_test.go
Normal file
37
logx/logx_test.go
Normal file
@@ -0,0 +1,37 @@
|
||||
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")
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user