v0.1.2-pre.003
This commit is contained in:
56
crates/ksp-logging-lib/unit_tests/runtime.rs
Normal file
56
crates/ksp-logging-lib/unit_tests/runtime.rs
Normal file
@@ -0,0 +1,56 @@
|
||||
// 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);
|
||||
}
|
||||
Reference in New Issue
Block a user