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  }