Files
MyAiDesk/nomifun-tauri/crates/agent/nomi-config/tests/logging_integration.rs
T
freedak f7a720204a Update: 将子项目从 submodule 转为完整内容
- 移除 GovAI, nomifun-tauri, 算力盒子 的 submodule 引用
- 添加所有子项目的完整源代码
- 保留原始 .git 为 .git.bak 备份
2026-07-04 19:20:46 +08:00

52 lines
1.5 KiB
Rust

use nomi_config::logging::{ResolvedLogging, create_file_layer};
use tracing::info;
use tracing_subscriber::layer::SubscriberExt;
use tracing_subscriber::util::SubscriberInitExt;
#[test]
fn create_file_layer_writes_json_to_file() {
let tmp = tempfile::tempdir().unwrap();
let config = ResolvedLogging {
enabled: true,
level: "info".to_string(),
dir: tmp.path().to_path_buf(),
};
let (layer, _guard) = create_file_layer(&config).unwrap();
tracing_subscriber::registry().with(layer).init();
info!(target: "nomi_test", key = "value", "test message");
drop(_guard);
let entries: Vec<_> = std::fs::read_dir(tmp.path())
.unwrap()
.filter_map(|e| e.ok())
.filter(|e| e.path().extension().is_some_and(|ext| ext == "log"))
.collect();
assert!(!entries.is_empty(), "expected at least one .log file");
let content = std::fs::read_to_string(entries[0].path()).unwrap();
assert!(
content.contains("test message"),
"log should contain message"
);
assert!(content.contains("nomi_test"), "log should contain target");
}
#[test]
fn create_file_layer_creates_directory() {
let tmp = tempfile::tempdir().unwrap();
let nested = tmp.path().join("sub").join("dir");
let config = ResolvedLogging {
enabled: true,
level: "info".to_string(),
dir: nested.clone(),
};
let result = create_file_layer::<tracing_subscriber::Registry>(&config);
assert!(result.is_ok());
assert!(nested.exists());
}