Files
wehub-resource-sync 498b235461
Build and test / Build and test AMD64 Ubuntu 22.04 (push) Failing after 0s
Publish Builder / amazonlinux2023 (push) Failing after 1s
Build and test / UT for Go (push) Has been skipped
Publish KRTE Images / KRTE (push) Failing after 1s
Build and test / Integration Test (push) Has been skipped
Build and test / Upload Code Coverage (push) Has been skipped
Publish Builder / rockylinux9 (push) Failing after 1s
Publish Builder / ubuntu22.04 (push) Failing after 0s
Publish Builder / ubuntu24.04 (push) Failing after 0s
Publish Gpu Builder / publish-gpu-builder (push) Failing after 1s
Publish Test Images / PyTest (push) Failing after 0s
Build and test / UT for Cpp (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 12:31:17 +08:00

60 lines
1.5 KiB
Go

//go:build test
package mlog
import (
"bytes"
"context"
"encoding/json"
"testing"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
func TestBinderReturnsDefaultLoggerWhenUnset(t *testing.T) {
var buf bytes.Buffer
initForTest(createTestLogger(&buf))
defer resetLogger()
var binder Binder
binder.Logger().Info(context.Background(), "default logger", String("key", "value"))
var entry map[string]interface{}
require.NoError(t, json.Unmarshal(buf.Bytes(), &entry))
assert.Equal(t, "default logger", entry["msg"])
assert.Equal(t, "value", entry["key"])
}
func TestBinderUsesExplicitLogger(t *testing.T) {
var buf bytes.Buffer
initForTest(createTestLogger(&buf))
defer resetLogger()
var binder Binder
binder.SetLogger(With(FieldComponent("wal")))
binder.Logger().Info(context.Background(), "bound logger")
var entry map[string]interface{}
require.NoError(t, json.Unmarshal(buf.Bytes(), &entry))
assert.Equal(t, "bound logger", entry["msg"])
assert.Equal(t, "wal", entry[keyComponent])
}
func TestBinderAcceptsNilLogger(t *testing.T) {
var buf bytes.Buffer
initForTest(createTestLogger(&buf))
defer resetLogger()
var binder Binder
binder.SetLogger(With(FieldComponent("wal")))
binder.SetLogger(nil)
binder.Logger().Info(context.Background(), "fallback logger", String("key", "value"))
var entry map[string]interface{}
require.NoError(t, json.Unmarshal(buf.Bytes(), &entry))
assert.Equal(t, "fallback logger", entry["msg"])
assert.Equal(t, "value", entry["key"])
assert.Nil(t, entry[keyComponent])
}