tracing_s3/
testing.rs

1#[cfg(test)]
2mod tests {
3    use crate::config::{Bucket, Config, CronIntervalInMs, Endpoint, ObjectSizeLimitMb, Prefix};
4    use crate::layer::http_log_layer::HttpLogLayer;
5    use std::sync::Arc;
6    use std::time::Duration;
7    use tracing::Dispatch;
8    use tracing::dispatcher::with_default;
9    use tracing_subscriber::layer::SubscriberExt;
10
11    #[tracing::instrument(name = "add", skip_all)]
12    pub fn add(left: u64, right: u64) -> u64 {
13        left + right
14    }
15
16    #[tokio::test]
17    async fn json_tracing() {
18        use tracing_subscriber::fmt::format::FmtSpan;
19        let subscriber = tracing_subscriber::fmt()
20            .json()
21            .with_span_events(FmtSpan::CLOSE)
22            .with_max_level(tracing::Level::INFO) // Set desired log level
23            .finish();
24        with_default(&Dispatch::new(subscriber), || {
25            let result = add(2, 2);
26            assert_eq!(result, 4);
27        });
28        tokio::time::sleep(Duration::from_millis(1_000)).await;
29    }
30
31    #[tokio::test]
32    async fn http_tracing() {
33        let config = Config::new(
34            None,
35            None,
36            None,
37            Bucket(None),
38            Prefix("prefix"),
39            Endpoint(None),
40            ObjectSizeLimitMb(1),
41            CronIntervalInMs(1_000),
42        )
43        .await
44        .unwrap();
45        let http_log_layer = HttpLogLayer::new(Arc::new(config));
46        let subscriber = tracing_subscriber::registry()
47            .with(
48                tracing_subscriber::EnvFilter::try_from_default_env()
49                    .unwrap_or_else(|_| "info".into()),
50            )
51            .with(tracing_subscriber::fmt::layer().with_ansi(false))
52            .with(http_log_layer);
53        with_default(&Dispatch::new(subscriber), || {
54            let result = add(2, 2);
55            assert_eq!(result, 4);
56        });
57        tokio::time::sleep(Duration::from_millis(1_000)).await;
58    }
59}