github.com/status-im/status-go@v1.1.0/protocol/zaputil/encoder_test.go (about) 1 package zaputil 2 3 import ( 4 "io/ioutil" 5 "testing" 6 "time" 7 8 "github.com/stretchr/testify/require" 9 "go.uber.org/zap" 10 "go.uber.org/zap/zapcore" 11 ) 12 13 func TestJSONHexEncoder(t *testing.T) { 14 encoder := NewJSONHexEncoder(zap.NewDevelopmentEncoderConfig()) 15 encoder.AddBinary("test-key", []byte{0x01, 0x02, 0x03}) 16 buf, err := encoder.EncodeEntry(zapcore.Entry{ 17 LoggerName: "", 18 Time: time.Now(), 19 Level: zapcore.DebugLevel, 20 Message: "", 21 }, nil) 22 require.NoError(t, err) 23 require.Contains(t, buf.String(), `"test-key":"0x010203"`) 24 } 25 26 func TestLoggerWithJSONHexEncoder(t *testing.T) { 27 err := RegisterJSONHexEncoder() 28 require.NoError(t, err) 29 30 tmpFile, err := ioutil.TempFile("", "") 31 require.NoError(t, err) 32 33 cfg := zap.NewDevelopmentConfig() 34 cfg.OutputPaths = []string{tmpFile.Name()} 35 cfg.Encoding = "json-hex" 36 l, err := cfg.Build() 37 require.NoError(t, err) 38 39 l.With(zap.Binary("some-field", []byte{0x01, 0x02, 0x03})).Debug("test message") 40 err = l.Sync() 41 require.NoError(t, err) 42 43 data, err := ioutil.ReadFile(tmpFile.Name()) 44 require.NoError(t, err) 45 require.Contains(t, string(data), "0x010203") 46 } 47 48 func TestConsoleHexEncoder(t *testing.T) { 49 encoder := NewConsoleHexEncoder(zap.NewDevelopmentEncoderConfig()) 50 encoder.AddBinary("test-key", []byte{0x01, 0x02, 0x03}) 51 buf, err := encoder.EncodeEntry(zapcore.Entry{ 52 LoggerName: "", 53 Time: time.Now(), 54 Level: zapcore.DebugLevel, 55 Message: "", 56 }, nil) 57 require.NoError(t, err) 58 require.Contains(t, buf.String(), `{"test-key": "0x010203"}`) 59 } 60 61 func TestLoggerWithConsoleHexEncoder(t *testing.T) { 62 err := RegisterConsoleHexEncoder() 63 require.NoError(t, err) 64 65 tmpFile, err := ioutil.TempFile("", "") 66 require.NoError(t, err) 67 68 cfg := zap.NewDevelopmentConfig() 69 cfg.OutputPaths = []string{tmpFile.Name()} 70 cfg.Encoding = "console-hex" 71 l, err := cfg.Build() 72 require.NoError(t, err) 73 74 l.With(zap.Binary("some-field", []byte{0x01, 0x02, 0x03})).Debug("test message") 75 err = l.Sync() 76 require.NoError(t, err) 77 78 data, err := ioutil.ReadFile(tmpFile.Name()) 79 require.NoError(t, err) 80 require.Contains(t, string(data), "0x010203") 81 }