#![cfg(test)]
use crate::{log_init, tracing_init, TelemetryConfig, TelemetryGuards, TracingConfig};
#[test]
fn init_twice_is_safe() {
let _g1 = tracing_init(&TracingConfig {
service_name: "test".into(),
rust_log: Some("info".into()),
with_ansi_colors: false,
..Default::default()
});
let _g2 = tracing_init(&TracingConfig::default());
}
#[test]
fn log_init_is_safe_after_init() {
log_init(Some("warn"));
}
#[test]
fn tracing_config_default() {
let c = TracingConfig::default();
assert!(c.service_name.is_empty());
assert!(c.otlp.is_none());
assert!(!c.no_log_to_stdout);
assert!(c.log_to_file.is_none());
assert!(c.rust_log.is_none());
assert!(!c.with_ansi_colors);
#[cfg(not(target_os = "windows"))]
assert!(!c.log_to_syslog);
}
#[test]
fn telemetry_config_default() {
let c = TelemetryConfig::default();
assert!(c.version.is_none());
assert!(c.environment.is_none());
assert!(c.otlp_url.is_empty());
assert!(!c.enable_metering);
}
#[test]
fn telemetry_guards_shutdown_empty() {
TelemetryGuards::default().shutdown();
}
#[test]
fn telemetry_guards_meter_noop() {
let g = TelemetryGuards::default();
let _m = g.meter("test-scope");
}
mod macros {
#[test]
fn fn_name_not_empty() {
let name = crate::__fn_name!();
assert!(!name.is_empty(), "function name must not be empty");
assert!(
name.contains("fn_name_not_empty"),
"expected 'fn_name_not_empty', got '{name}'"
);
}
#[test]
fn macros_do_not_panic() {
crate::info!("info message {}", 1);
crate::debug!("debug message {}", 2);
crate::warn!("warn message {}", 3);
crate::error!("error message {}", 4);
crate::trace!("trace message {}", 5);
}
}