Skip to content
This repository was archived by the owner on Dec 30, 2024. It is now read-only.

Commit e81a73f

Browse files
committed
add tests
1 parent 6fe949d commit e81a73f

File tree

1 file changed

+123
-2
lines changed

1 file changed

+123
-2
lines changed

writer_test.go

+123-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package zlogsentry
22

33
import (
4+
"errors"
5+
"io"
46
"testing"
57
"time"
68

@@ -38,6 +40,125 @@ func TestParseLogEvent(t *testing.T) {
3840
assert.Equal(t, "bee07485-2485-4f64-99e1-d10165884ca7", ev.Extra["requestId"])
3941
}
4042

43+
func TestParseLogLevel(t *testing.T) {
44+
w, err := New("")
45+
require.Nil(t, err)
46+
47+
level, err := w.parseLogLevel(logEventJSON)
48+
require.Nil(t, err)
49+
assert.Equal(t, zerolog.ErrorLevel, level)
50+
}
51+
52+
func TestWrite(t *testing.T) {
53+
beforeSendCalled := false
54+
writer, err := New("", WithBeforeSend(func(event *sentry.Event, hint *sentry.EventHint) *sentry.Event {
55+
assert.Equal(t, sentry.LevelError, event.Level)
56+
assert.Equal(t, "test message", event.Message)
57+
require.Len(t, event.Exception, 1)
58+
assert.Equal(t, "dial timeout", event.Exception[0].Value)
59+
assert.True(t, time.Since(event.Timestamp).Minutes() < 1)
60+
assert.Equal(t, "bee07485-2485-4f64-99e1-d10165884ca7", event.Extra["requestId"])
61+
beforeSendCalled = true
62+
return event
63+
}))
64+
require.Nil(t, err)
65+
66+
var zerologError error
67+
zerolog.ErrorHandler = func(err error) {
68+
zerologError = err
69+
}
70+
71+
// use io.MultiWriter to enforce using the Write() method
72+
log := zerolog.New(io.MultiWriter(writer)).With().Timestamp().
73+
Str("requestId", "bee07485-2485-4f64-99e1-d10165884ca7").
74+
Logger()
75+
log.Err(errors.New("dial timeout")).
76+
Msg("test message")
77+
78+
require.Nil(t, zerologError)
79+
require.True(t, beforeSendCalled)
80+
}
81+
82+
func TestWriteLevel(t *testing.T) {
83+
beforeSendCalled := false
84+
writer, err := New("", WithBeforeSend(func(event *sentry.Event, hint *sentry.EventHint) *sentry.Event {
85+
assert.Equal(t, sentry.LevelError, event.Level)
86+
assert.Equal(t, "test message", event.Message)
87+
require.Len(t, event.Exception, 1)
88+
assert.Equal(t, "dial timeout", event.Exception[0].Value)
89+
assert.True(t, time.Since(event.Timestamp).Minutes() < 1)
90+
assert.Equal(t, "bee07485-2485-4f64-99e1-d10165884ca7", event.Extra["requestId"])
91+
beforeSendCalled = true
92+
return event
93+
}))
94+
require.Nil(t, err)
95+
96+
var zerologError error
97+
zerolog.ErrorHandler = func(err error) {
98+
zerologError = err
99+
}
100+
101+
log := zerolog.New(writer).With().Timestamp().
102+
Str("requestId", "bee07485-2485-4f64-99e1-d10165884ca7").
103+
Logger()
104+
log.Err(errors.New("dial timeout")).
105+
Msg("test message")
106+
107+
require.Nil(t, zerologError)
108+
require.True(t, beforeSendCalled)
109+
}
110+
111+
func TestWrite_Disabled(t *testing.T) {
112+
beforeSendCalled := false
113+
writer, err := New("",
114+
WithLevels(zerolog.FatalLevel),
115+
WithBeforeSend(func(event *sentry.Event, hint *sentry.EventHint) *sentry.Event {
116+
beforeSendCalled = true
117+
return event
118+
}))
119+
require.Nil(t, err)
120+
121+
var zerologError error
122+
zerolog.ErrorHandler = func(err error) {
123+
zerologError = err
124+
}
125+
126+
// use io.MultiWriter to enforce using the Write() method
127+
log := zerolog.New(io.MultiWriter(writer)).With().Timestamp().
128+
Str("requestId", "bee07485-2485-4f64-99e1-d10165884ca7").
129+
Logger()
130+
log.Err(errors.New("dial timeout")).
131+
Msg("test message")
132+
133+
require.Nil(t, zerologError)
134+
require.False(t, beforeSendCalled)
135+
}
136+
137+
func TestWriteLevel_Disabled(t *testing.T) {
138+
beforeSendCalled := false
139+
writer, err := New("",
140+
WithLevels(zerolog.FatalLevel),
141+
WithBeforeSend(func(event *sentry.Event, hint *sentry.EventHint) *sentry.Event {
142+
beforeSendCalled = true
143+
return event
144+
}))
145+
require.Nil(t, err)
146+
147+
var zerologError error
148+
zerolog.ErrorHandler = func(err error) {
149+
zerologError = err
150+
}
151+
152+
log := zerolog.New(writer).With().Timestamp().
153+
Str("requestId", "bee07485-2485-4f64-99e1-d10165884ca7").
154+
Logger()
155+
log.Err(errors.New("dial timeout")).
156+
Msg("test message")
157+
158+
require.Nil(t, zerologError)
159+
require.False(t, beforeSendCalled)
160+
}
161+
41162
func BenchmarkParseLogEvent(b *testing.B) {
42163
w, err := New("")
43164
if err != nil {
@@ -49,7 +170,7 @@ func BenchmarkParseLogEvent(b *testing.B) {
49170
}
50171
}
51172

52-
func BenchmarkParseLogEvent_DisabledLevel(b *testing.B) {
173+
func BenchmarkParseLogEvent_Disabled(b *testing.B) {
53174
w, err := New("", WithLevels(zerolog.FatalLevel))
54175
if err != nil {
55176
b.Errorf("failed to create writer: %v", err)
@@ -93,7 +214,7 @@ func BenchmarkWriteLogLevelEvent(b *testing.B) {
93214
}
94215
}
95216

96-
func BenchmarkWriteLogLevelEvent_DisabledLevel(b *testing.B) {
217+
func BenchmarkWriteLogLevelEvent_Disabled(b *testing.B) {
97218
w, err := New("", WithLevels(zerolog.FatalLevel))
98219
if err != nil {
99220
b.Errorf("failed to create writer: %v", err)

0 commit comments

Comments
 (0)