1
1
package zlogsentry
2
2
3
3
import (
4
+ "errors"
5
+ "io"
4
6
"testing"
5
7
"time"
6
8
@@ -38,6 +40,125 @@ func TestParseLogEvent(t *testing.T) {
38
40
assert .Equal (t , "bee07485-2485-4f64-99e1-d10165884ca7" , ev .Extra ["requestId" ])
39
41
}
40
42
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
+
41
162
func BenchmarkParseLogEvent (b * testing.B ) {
42
163
w , err := New ("" )
43
164
if err != nil {
@@ -49,7 +170,7 @@ func BenchmarkParseLogEvent(b *testing.B) {
49
170
}
50
171
}
51
172
52
- func BenchmarkParseLogEvent_DisabledLevel (b * testing.B ) {
173
+ func BenchmarkParseLogEvent_Disabled (b * testing.B ) {
53
174
w , err := New ("" , WithLevels (zerolog .FatalLevel ))
54
175
if err != nil {
55
176
b .Errorf ("failed to create writer: %v" , err )
@@ -93,7 +214,7 @@ func BenchmarkWriteLogLevelEvent(b *testing.B) {
93
214
}
94
215
}
95
216
96
- func BenchmarkWriteLogLevelEvent_DisabledLevel (b * testing.B ) {
217
+ func BenchmarkWriteLogLevelEvent_Disabled (b * testing.B ) {
97
218
w , err := New ("" , WithLevels (zerolog .FatalLevel ))
98
219
if err != nil {
99
220
b .Errorf ("failed to create writer: %v" , err )
0 commit comments