57 lines
2.7 KiB
Rust
57 lines
2.7 KiB
Rust
// file: crates/ksp-logging-lib/unit_tests/runtime.rs
|
|
// version: 1
|
|
|
|
#[test]
|
|
fn level_mapping_covers_all_ksp_levels() {
|
|
assert_eq!(super::map_filter_level(crate::LogFilterLevel::Off), tracing_subscriber::filter::LevelFilter::OFF);
|
|
assert_eq!(super::map_filter_level(crate::LogFilterLevel::Error), tracing_subscriber::filter::LevelFilter::ERROR);
|
|
assert_eq!(super::map_filter_level(crate::LogFilterLevel::Warn), tracing_subscriber::filter::LevelFilter::WARN);
|
|
assert_eq!(super::map_filter_level(crate::LogFilterLevel::Info), tracing_subscriber::filter::LevelFilter::INFO);
|
|
assert_eq!(super::map_filter_level(crate::LogFilterLevel::Debug), tracing_subscriber::filter::LevelFilter::DEBUG);
|
|
assert_eq!(super::map_filter_level(crate::LogFilterLevel::Trace), tracing_subscriber::filter::LevelFilter::TRACE);
|
|
}
|
|
|
|
#[test]
|
|
fn takeover_filter_silences_external_targets_and_applies_ksp_overrides() {
|
|
let settings = crate::LoggingSettings::new(
|
|
crate::LogFilterLevel::Info,
|
|
crate::SpanEvents::Off,
|
|
std::option::Option::Some(crate::ConsoleSettings::stdout()),
|
|
std::option::Option::None,
|
|
)
|
|
.with_target_filter(crate::TargetFilter::new("ksp-logging-lib", crate::LogFilterLevel::Trace));
|
|
let filter = super::build_target_filter(&settings);
|
|
assert!(filter.would_enable("ksp-store-lib", &tracing::Level::INFO));
|
|
assert!(!filter.would_enable("ksp-store-lib", &tracing::Level::DEBUG));
|
|
assert!(filter.would_enable("ksp-logging-lib", &tracing::Level::TRACE));
|
|
assert!(!filter.would_enable("sqlx", &tracing::Level::ERROR));
|
|
assert!(!filter.would_enable("hyper", &tracing::Level::ERROR));
|
|
}
|
|
|
|
#[test]
|
|
fn span_event_mapping_supports_disabled_timing_and_full_lifecycle() {
|
|
assert_eq!(super::map_span_events(crate::SpanEvents::Off), tracing_subscriber::fmt::format::FmtSpan::NONE);
|
|
assert_eq!(
|
|
super::map_span_events(crate::SpanEvents::NewAndClose),
|
|
tracing_subscriber::fmt::format::FmtSpan::NEW | tracing_subscriber::fmt::format::FmtSpan::CLOSE,
|
|
);
|
|
assert_eq!(super::map_span_events(crate::SpanEvents::Full), tracing_subscriber::fmt::format::FmtSpan::FULL);
|
|
}
|
|
|
|
#[test]
|
|
fn file_output_is_rejected_until_file_runtime_is_introduced() {
|
|
let settings = crate::LoggingSettings::new(
|
|
crate::LogFilterLevel::Info,
|
|
crate::SpanEvents::Off,
|
|
std::option::Option::None,
|
|
std::option::Option::Some(crate::FileSettings::new("logs", "ksp", crate::FileRotation::Daily)),
|
|
);
|
|
let result = super::prepare_runtime_layers(&settings);
|
|
assert!(result.is_err());
|
|
let error = match result {
|
|
std::result::Result::Ok(_) => return,
|
|
std::result::Result::Err(error) => error,
|
|
};
|
|
assert_eq!(error.code(), crate::ERROR_CODE_INVALID_SETTINGS);
|
|
}
|