12345678910111213141516171819202122232425262728293031323334353637 |
- use tracing::Level;
- use tracing_mock::*;
- #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test::wasm_bindgen_test)]
- #[test]
- fn max_level_hints() {
- // This test asserts that when a subscriber provides us with the global
- // maximum level that it will enable (by implementing the
- // `Subscriber::max_level_hint` method), we will never call
- // `Subscriber::enabled` for events above that maximum level.
- //
- // In this case, we test that by making the `enabled` method assert that no
- // `Metadata` for spans or events at the `TRACE` or `DEBUG` levels.
- let (subscriber, handle) = subscriber::mock()
- .with_max_level_hint(Level::INFO)
- .with_filter(|meta| {
- assert!(
- dbg!(meta).level() <= &Level::INFO,
- "a TRACE or DEBUG event was dynamically filtered: "
- );
- true
- })
- .event(event::mock().at_level(Level::INFO))
- .event(event::mock().at_level(Level::WARN))
- .event(event::mock().at_level(Level::ERROR))
- .done()
- .run_with_handle();
- tracing::subscriber::set_global_default(subscriber).unwrap();
- tracing::info!("doing a thing that you might care about");
- tracing::debug!("charging turboencabulator with interocitor");
- tracing::warn!("extremely serious warning, pay attention");
- tracing::trace!("interocitor charge level is 10%");
- tracing::error!("everything is on fire");
- handle.assert_finished();
- }
|