package logging import ( "testing" "github.com/stretchr/testify/assert" ) func TestInitLogger(t *testing.T) { err := InitLogger() assert.NoError(t, err) } func TestGetLogger(t *testing.T) { lg := GetLogger() assert.NotNil(t, lg) } func TestStringField(t *testing.T) { field := String("key", "value") assert.NotNil(t, field) assert.Equal(t, "key", field.Key) } func TestIntField(t *testing.T) { field := Int("counter", 42) assert.NotNil(t, field) assert.Equal(t, "counter", field.Key) } func TestInt64Field(t *testing.T) { field := Int64("bignum", 9223372036854775807) assert.NotNil(t, field) assert.Equal(t, "bignum", field.Key) } func TestErrorField(t *testing.T) { err := assert.AnError field := Err(err) assert.NotNil(t, field) assert.Equal(t, "error", field.Key) } // Note: TestSync is omitted because zap.Sync() may fail on stderr in test environment // This is expected behavior and doesn't affect production use func TestWith(t *testing.T) { InitLogger() lg := With(String("test", "value")) assert.NotNil(t, lg) } // TestLoggingFunctions tests that logging functions don't panic func TestLoggingFunctions(t *testing.T) { InitLogger() defer Sync() // These should not panic assert.NotPanics(t, func() { Info("test info", String("field", "value")) }) assert.NotPanics(t, func() { Warn("test warn", String("field", "value")) }) assert.NotPanics(t, func() { Debug("test debug", String("field", "value")) }) assert.NotPanics(t, func() { Error("test error", String("field", "value")) }) }