package zap_test import ( "bytes" "context" "testing" "gitoa.ru/go-4devs/log/entry" "gitoa.ru/go-4devs/log/field" zlog "gitoa.ru/go-4devs/log/handler/zap" "gitoa.ru/go-4devs/log/level" "go.uber.org/zap" "go.uber.org/zap/zapcore" ) func TestNew(t *testing.T) { t.Parallel() ctx := context.Background() buf := &bytes.Buffer{} core := zapcore.NewCore(zapcore.NewJSONEncoder(zapcore.EncoderConfig{ MessageKey: "msg", LevelKey: "level", NameKey: "logger", EncodeLevel: zapcore.LowercaseLevelEncoder, EncodeTime: zapcore.ISO8601TimeEncoder, EncodeDuration: zapcore.StringDurationEncoder, }), zapcore.AddSync(buf), zapcore.DebugLevel) logger := zlog.New(zap.New(core)) expect := `{"level":"info","msg":"handle zap message","env":"test"}` + "\n" if _, err := logger(ctx, entry.New( entry.WithFields(field.String("env", "test")), entry.WithLevel(level.Notice), entry.WithMessage("handle zap message"), )); err != nil { t.Error(err) } if buf.String() != expect { t.Errorf("invalid message\n got: %s\nexpect:%s\n", buf.String(), expect) } }