pub use toolkit_trace_context::{
TRACEPARENT, get_traceparent, inject_current_span, parse_trace_id, set_parent_from_headers,
};
#[cfg(test)]
#[cfg_attr(coverage_nightly, coverage(off))]
mod tests {
use super::*;
use http::HeaderMap;
use tracing::info_span;
#[test]
#[cfg(not(feature = "otel"))]
fn test_inject_current_span_noop() {
let mut headers = HeaderMap::new();
inject_current_span(&mut headers);
assert!(headers.is_empty());
}
#[test]
#[cfg(feature = "otel")]
fn test_inject_current_span_no_panic() {
use opentelemetry::global;
use opentelemetry_sdk::propagation::TraceContextPropagator;
global::set_text_map_propagator(TraceContextPropagator::new());
let mut headers = HeaderMap::new();
let _span = tracing::info_span!("test").entered();
inject_current_span(&mut headers);
}
#[test]
fn test_set_parent_from_headers_no_panic() {
let mut headers = HeaderMap::new();
headers.insert(
TRACEPARENT,
"00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01"
.parse()
.expect("valid header"),
);
let span = info_span!(
"test",
trace_id = tracing::field::Empty,
parent.trace_id = tracing::field::Empty
);
set_parent_from_headers(&span, &headers);
assert_eq!(
parse_trace_id("00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01").as_deref(),
Some("4bf92f3577b34da6a3ce929d0e0e4736")
);
}
}