use super::*;
#[test]
fn sidecar_dir_none_for_pathological_paths() {
assert!(sidecar_dir_for_session(Path::new("/")).is_none());
assert!(sidecar_dir_for_session(Path::new("nonexistent.jsonl")).is_none());
}
#[test]
fn bare_agent_id_strips_prefix_only_when_present() {
assert_eq!(bare_agent_id("agent-aaa111"), "aaa111");
assert_eq!(
bare_agent_id("0a1b2c3d-4e5f-4a6b-8c7d-9e0f1a2b3c4d"),
"0a1b2c3d-4e5f-4a6b-8c7d-9e0f1a2b3c4d"
);
}
#[test]
fn session_id_from_path_is_canonical_bare_hex() {
assert_eq!(
session_id_from_path(Path::new(
"/x/-Enc/0a1b2c3d-4e5f-4a6b-8c7d-9e0f1a2b3c4d/subagents/agent-a585e25a580c59e7a.jsonl"
)),
"a585e25a580c59e7a"
);
assert_eq!(
session_id_from_path(Path::new(
"/x/-Enc/0a1b2c3d-4e5f-4a6b-8c7d-9e0f1a2b3c4d.jsonl"
)),
"0a1b2c3d-4e5f-4a6b-8c7d-9e0f1a2b3c4d"
);
assert_eq!(session_id_from_path(Path::new("/")), "");
}
#[test]
fn parent_session_id_and_is_subagent_from_path() {
let sub = Path::new(
"/x/-Enc/0a1b2c3d-4e5f-4a6b-8c7d-9e0f1a2b3c4d/subagents/agent-a585e25a580c59e7a.jsonl",
);
let wf = Path::new(
"/x/-Enc/0a1b2c3d-4e5f-4a6b-8c7d-9e0f1a2b3c4d/subagents/workflows/wf_abc/agent-aaa.jsonl",
);
let top = Path::new("/x/-Enc/0a1b2c3d-4e5f-4a6b-8c7d-9e0f1a2b3c4d.jsonl");
assert_eq!(
parent_session_id_from_path(sub).as_deref(),
Some("0a1b2c3d-4e5f-4a6b-8c7d-9e0f1a2b3c4d")
);
assert!(is_subagent_path(sub));
assert_eq!(
parent_session_id_from_path(wf).as_deref(),
Some("0a1b2c3d-4e5f-4a6b-8c7d-9e0f1a2b3c4d")
);
assert!(is_subagent_path(wf));
assert_eq!(parent_session_id_from_path(top), None);
assert!(!is_subagent_path(top));
}