diff options
| author | Ogulcan Celik <ogulcancelik@gmail.com> | 2026-06-07 00:07:24 +0300 |
|---|---|---|
| committer | Ogulcan Celik <ogulcancelik@gmail.com> | 2026-06-07 16:29:44 +0300 |
| commit | 3c2b46d24aa6c8011a1e198143752f2aa414d585 (patch) | |
| tree | a52280bccc824ca656f8bc986a756f30901974e4 /src/agent_resume.rs | |
| parent | 5d7e56737ef30d9de5802b0684a9428c40131dda (diff) | |
feat: add native windows beta support
Diffstat (limited to 'src/agent_resume.rs')
| -rw-r--r-- | src/agent_resume.rs | 53 |
1 files changed, 31 insertions, 22 deletions
diff --git a/src/agent_resume.rs b/src/agent_resume.rs index 5cbf5741..5c852dfa 100644 --- a/src/agent_resume.rs +++ b/src/agent_resume.rs @@ -184,8 +184,17 @@ fn valid_session_path(value: &str) -> bool { mod tests { use super::*; + fn absolute_test_path(name: &str) -> String { + std::env::current_dir() + .unwrap() + .join(name) + .display() + .to_string() + } + #[test] fn planner_allows_supported_agents() { + let pi_session = absolute_test_path("pi-session.jsonl"); assert_eq!( plan( "herdr:claude", @@ -230,11 +239,11 @@ mod tests { plan( "herdr:pi", "pi", - &AgentSessionRef::path("/tmp/pi-session.jsonl").unwrap() + &AgentSessionRef::path(&pi_session).unwrap() ) .unwrap() .argv, - vec!["pi", "--session", "/tmp/pi-session.jsonl"] + vec!["pi", "--session", pi_session.as_str()] ); assert_eq!( plan( @@ -260,6 +269,7 @@ mod tests { #[test] fn planner_rejects_custom_and_unsupported_path_refs() { + let claude_session = absolute_test_path("claude-session"); assert!(plan( "custom:claude", "claude", @@ -269,22 +279,25 @@ mod tests { assert!(plan( "herdr:claude", "claude", - &AgentSessionRef::path("/tmp/claude-session").unwrap() + &AgentSessionRef::path(&claude_session).unwrap() ) .is_none()); } #[test] fn report_ref_prefers_pi_path_and_validates_values() { + let pi_session = absolute_test_path("pi-session.jsonl"); + let claude_session = absolute_test_path("claude-session"); + let copilot_session = absolute_test_path("copilot-session"); let session_ref = session_ref_from_report( "herdr:pi", "pi", Some("pi-id".into()), - Some("/tmp/pi-session.jsonl".into()), + Some(pi_session.clone()), ) .unwrap(); assert_eq!(session_ref.kind, AgentSessionRefKind::Path); - assert_eq!(session_ref.value, "/tmp/pi-session.jsonl"); + assert_eq!(session_ref.value, pi_session); assert!(session_ref_from_report("herdr:pi", "pi", Some("bad\nid".into()), None).is_none()); assert!( @@ -292,26 +305,19 @@ mod tests { .is_none() ); assert!(session_ref_from_report("custom:pi", "pi", Some("pi-id".into()), None).is_none()); - assert!(session_ref_from_report( - "herdr:claude", - "claude", - None, - Some("/tmp/claude-session".into()) - ) - .is_none()); + assert!( + session_ref_from_report("herdr:claude", "claude", None, Some(claude_session)).is_none() + ); let session_ref = session_ref_from_report("herdr:copilot", "copilot", Some("copilot-id".into()), None) .unwrap(); assert_eq!(session_ref.kind, AgentSessionRefKind::Id); assert_eq!(session_ref.value, "copilot-id"); - assert!(session_ref_from_report( - "herdr:copilot", - "copilot", - None, - Some("/tmp/copilot-session".into()) - ) - .is_none()); + assert!( + session_ref_from_report("herdr:copilot", "copilot", None, Some(copilot_session)) + .is_none() + ); let session_ref = session_ref_from_report("herdr:droid", "droid", Some("droid-id".into()), None).unwrap(); @@ -343,22 +349,25 @@ mod tests { #[test] fn planner_rejects_path_refs_for_id_only_agents() { + let hermes_session = absolute_test_path("hermes-session"); + let opencode_session = absolute_test_path("opencode-session"); + let copilot_session = absolute_test_path("copilot-session"); assert!(plan( "herdr:hermes", "hermes", - &AgentSessionRef::path("/tmp/hermes-session").unwrap() + &AgentSessionRef::path(&hermes_session).unwrap() ) .is_none()); assert!(plan( "herdr:opencode", "opencode", - &AgentSessionRef::path("/tmp/opencode-session").unwrap() + &AgentSessionRef::path(&opencode_session).unwrap() ) .is_none()); assert!(plan( "herdr:copilot", "copilot", - &AgentSessionRef::path("/tmp/copilot-session").unwrap() + &AgentSessionRef::path(&copilot_session).unwrap() ) .is_none()); assert!(session_ref_from_snapshot( |
