Skip to content

Commit 49f7273

Browse files
committed
tests
1 parent 477a5f8 commit 49f7273

File tree

1 file changed

+81
-0
lines changed

1 file changed

+81
-0
lines changed

sentry/tests/test_tracing.rs

Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -277,3 +277,84 @@ fn test_tracing_logs() {
277277
_ => panic!("expected item container"),
278278
}
279279
}
280+
281+
#[test]
282+
fn test_combined_event_filters() {
283+
let sentry_layer = sentry_tracing::layer().event_filter(|md| match *md.level() {
284+
tracing::Level::ERROR => {
285+
sentry_tracing::EventFilter::Breadcrumb | sentry_tracing::EventFilter::Event
286+
}
287+
tracing::Level::WARN => sentry_tracing::EventFilter::Event,
288+
_ => sentry_tracing::EventFilter::Ignore,
289+
});
290+
291+
let _dispatcher = tracing_subscriber::registry()
292+
.with(sentry_layer)
293+
.set_default();
294+
295+
let events = sentry::test::with_captured_events(|| {
296+
tracing::error!("Both a breadcrumb and an event");
297+
tracing::warn!("An event");
298+
});
299+
300+
assert_eq!(events.len(), 2);
301+
302+
assert_eq!(
303+
events[0].message,
304+
Some("Both a breadcrumb and an event".to_owned())
305+
);
306+
307+
assert_eq!(events[1].message, Some("An event".to_owned()));
308+
assert_eq!(events[1].breadcrumbs.len(), 1);
309+
assert_eq!(
310+
events[1].breadcrumbs[0].message,
311+
Some("Both a breadcrumb and an event".into())
312+
);
313+
}
314+
315+
#[test]
316+
fn test_combined_event_mapper() {
317+
let sentry_layer =
318+
sentry_tracing::layer().event_mapper(|event, ctx| match *event.metadata().level() {
319+
tracing::Level::ERROR => {
320+
let breadcrumb = sentry_tracing::breadcrumb_from_event(event, Some(&ctx));
321+
let sentry_event = sentry_tracing::event_from_event(event, Some(&ctx));
322+
323+
sentry_tracing::EventMapping::Combined(
324+
vec![
325+
sentry_tracing::EventMapping::Breadcrumb(breadcrumb),
326+
sentry_tracing::EventMapping::Event(sentry_event),
327+
]
328+
.into(),
329+
)
330+
}
331+
tracing::Level::WARN => {
332+
let sentry_event = sentry_tracing::event_from_event(event, Some(&ctx));
333+
sentry_tracing::EventMapping::Event(sentry_event)
334+
}
335+
_ => sentry_tracing::EventMapping::Ignore,
336+
});
337+
338+
let _dispatcher = tracing_subscriber::registry()
339+
.with(sentry_layer)
340+
.set_default();
341+
342+
let events = sentry::test::with_captured_events(|| {
343+
tracing::error!("Both a breadcrumb and an event");
344+
tracing::warn!("An event");
345+
});
346+
347+
assert_eq!(events.len(), 2);
348+
349+
assert_eq!(
350+
events[0].message,
351+
Some("Both a breadcrumb and an event".to_owned())
352+
);
353+
354+
assert_eq!(events[1].message, Some("An event".to_owned()));
355+
assert_eq!(events[1].breadcrumbs.len(), 1);
356+
assert_eq!(
357+
events[1].breadcrumbs[0].message,
358+
Some("Both a breadcrumb and an event".into())
359+
);
360+
}

0 commit comments

Comments
 (0)