Update: 将子项目从 submodule 转为完整内容
- 移除 GovAI, nomifun-tauri, 算力盒子 的 submodule 引用 - 添加所有子项目的完整源代码 - 保留原始 .git 为 .git.bak 备份
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
use nomifun_extension::{resolve_skill_paths, skill_service};
|
||||
use std::time::{SystemTime, UNIX_EPOCH};
|
||||
|
||||
fn unique_temp_dir(label: &str) -> std::path::PathBuf {
|
||||
let nanos = SystemTime::now()
|
||||
.duration_since(UNIX_EPOCH)
|
||||
.unwrap_or_default()
|
||||
.as_nanos();
|
||||
std::env::temp_dir().join(format!("nomifun-extension-{label}-{}-{nanos}", std::process::id()))
|
||||
}
|
||||
|
||||
#[tokio::test]
|
||||
async fn resolve_skill_paths_includes_cron_skills_dir() {
|
||||
let base = unique_temp_dir("cron-paths");
|
||||
std::fs::create_dir_all(&base).unwrap();
|
||||
|
||||
let paths = resolve_skill_paths(&base, &base);
|
||||
assert_eq!(paths.cron_skills_dir, base.join("cron").join("skills"));
|
||||
|
||||
std::fs::remove_dir_all(&base).unwrap();
|
||||
}
|
||||
|
||||
#[tokio::test]
|
||||
async fn materialize_resolves_saved_cron_skill() {
|
||||
let base = unique_temp_dir("cron-materialize");
|
||||
let skill_dir = base.join("cron").join("skills").join("cron-job-123");
|
||||
std::fs::create_dir_all(&skill_dir).unwrap();
|
||||
std::fs::write(
|
||||
skill_dir.join("SKILL.md"),
|
||||
"---\nname: cron-job-123\ndescription: Saved cron skill\n---\nUse the saved steps.",
|
||||
)
|
||||
.unwrap();
|
||||
|
||||
let paths = resolve_skill_paths(&base, &base);
|
||||
let resolved = skill_service::materialize_skills_for_agent(&paths, "conv-1", &["cron-job-123".to_owned()])
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
assert_eq!(resolved.len(), 1);
|
||||
assert_eq!(resolved[0].name, "cron-job-123");
|
||||
assert_eq!(resolved[0].source_path, skill_dir);
|
||||
assert!(resolved[0].source_path.join("SKILL.md").exists());
|
||||
|
||||
std::fs::remove_dir_all(&base).unwrap();
|
||||
}
|
||||
Reference in New Issue
Block a user