@@ -150,6 +150,78 @@ func TestWithCommandFilter(t *testing.T) {
150
150
t .Fatal (err )
151
151
}
152
152
})
153
+
154
+ t .Run ("auth command filtered by default" , func (t * testing.T ) {
155
+ provider := sdktrace .NewTracerProvider ()
156
+ hook := newTracingHook (
157
+ "" ,
158
+ WithTracerProvider (provider ),
159
+ )
160
+ ctx , span := provider .Tracer ("redis-test" ).Start (context .TODO (), "redis-test" )
161
+ cmd := redis .NewCmd (ctx , "auth" , "test-password" )
162
+ defer span .End ()
163
+
164
+ processHook := hook .ProcessHook (func (ctx context.Context , cmd redis.Cmder ) error {
165
+ innerSpan := trace .SpanFromContext (ctx ).(sdktrace.ReadOnlySpan )
166
+ if innerSpan .Name () != "redis-test" || innerSpan .Name () == "auth" {
167
+ t .Fatalf ("auth command should not be traced by default" )
168
+ }
169
+
170
+ return nil
171
+ })
172
+ err := processHook (ctx , cmd )
173
+ if err != nil {
174
+ t .Fatal (err )
175
+ }
176
+ })
177
+
178
+ t .Run ("hello command filtered by default when sensitive" , func (t * testing.T ) {
179
+ provider := sdktrace .NewTracerProvider ()
180
+ hook := newTracingHook (
181
+ "" ,
182
+ WithTracerProvider (provider ),
183
+ )
184
+ ctx , span := provider .Tracer ("redis-test" ).Start (context .TODO (), "redis-test" )
185
+ cmd := redis .NewCmd (ctx , "hello" , 3 , "AUTH" , "test-user" , "test-password" )
186
+ defer span .End ()
187
+
188
+ processHook := hook .ProcessHook (func (ctx context.Context , cmd redis.Cmder ) error {
189
+ innerSpan := trace .SpanFromContext (ctx ).(sdktrace.ReadOnlySpan )
190
+ if innerSpan .Name () != "redis-test" || innerSpan .Name () == "hello" {
191
+ t .Fatalf ("auth command should not be traced by default" )
192
+ }
193
+
194
+ return nil
195
+ })
196
+ err := processHook (ctx , cmd )
197
+ if err != nil {
198
+ t .Fatal (err )
199
+ }
200
+ })
201
+
202
+ t .Run ("hello command not filtered by default when not sensitive" , func (t * testing.T ) {
203
+ provider := sdktrace .NewTracerProvider ()
204
+ hook := newTracingHook (
205
+ "" ,
206
+ WithTracerProvider (provider ),
207
+ )
208
+ ctx , span := provider .Tracer ("redis-test" ).Start (context .TODO (), "redis-test" )
209
+ cmd := redis .NewCmd (ctx , "hello" , 3 )
210
+ defer span .End ()
211
+
212
+ processHook := hook .ProcessHook (func (ctx context.Context , cmd redis.Cmder ) error {
213
+ innerSpan := trace .SpanFromContext (ctx ).(sdktrace.ReadOnlySpan )
214
+ if innerSpan .Name () != "hello" {
215
+ t .Fatalf ("hello command should be traced" )
216
+ }
217
+
218
+ return nil
219
+ })
220
+ err := processHook (ctx , cmd )
221
+ if err != nil {
222
+ t .Fatal (err )
223
+ }
224
+ })
153
225
}
154
226
155
227
func TestTracingHook_DialHook (t * testing.T ) {
0 commit comments