sessions : am sessions --resume <id> (issue #32) - relance en arriere-plan avec les arguments et le cwd d'origine, cwd optionnel dans spawn_background, gardes running/repl/erreurs claires
This commit is contained in:
@@ -31,6 +31,7 @@ fn spawn_detect_stop_cycle() {
|
||||
std::path::Path::new(prog),
|
||||
&args,
|
||||
&env,
|
||||
None,
|
||||
)
|
||||
.unwrap();
|
||||
assert!(pid > 0);
|
||||
@@ -57,6 +58,7 @@ fn spawning_a_failing_program_reports_an_error() {
|
||||
std::path::Path::new(prog),
|
||||
&args,
|
||||
&env,
|
||||
None,
|
||||
)
|
||||
.unwrap_err();
|
||||
assert!(
|
||||
|
||||
+19
-2
@@ -58,16 +58,33 @@ fn agent_session_roundtrip_and_counter() {
|
||||
fn command_lists_sessions() {
|
||||
let app = common::test_app("sesscmd", &["sessions"]);
|
||||
sessions::start_agent(&app, "aider", 4242, None, None, vec![], vec![], None).unwrap();
|
||||
let code = sessions_cmd::run(&app, None, None, None, None).unwrap();
|
||||
let code = sessions_cmd::run(&app, None, None, None, None, None).unwrap();
|
||||
assert_eq!(code, 0);
|
||||
// --json path returns the row set without error.
|
||||
sessions::finish_agent(&app, "aider", Some(4242), 0, true).unwrap();
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn resume_unknown_or_repl_session_errors() {
|
||||
let app = common::test_app("resume", &["sessions"]);
|
||||
assert!(sessions_cmd::run(&app, None, None, None, None, Some("inconnue")).is_err());
|
||||
sessions::start_repl(&app, "r1", None).unwrap();
|
||||
assert!(sessions_cmd::run(&app, None, None, None, None, Some("r1")).is_err());
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn resume_dry_run_announces() {
|
||||
let app = common::test_app("resumedry", &["sessions", "--dry-run"]);
|
||||
let id = sessions::start_agent(&app, "claude-code", 4242, None, None, vec![], vec![], None).unwrap();
|
||||
sessions::finish_agent(&app, "claude-code", Some(4242), 0, true).unwrap();
|
||||
let code = sessions_cmd::run(&app, None, None, None, None, Some(&id)).unwrap();
|
||||
assert_eq!(code, 0, "dry-run resume");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn show_one_accepts_known_id() {
|
||||
let app = common::test_app("sessshow", &["sessions"]);
|
||||
let id = sessions::start_agent(&app, "jcode", 99, None, None, vec![], vec![], None).unwrap();
|
||||
let code = sessions_cmd::run(&app, None, None, None, Some(&id)).unwrap();
|
||||
let code = sessions_cmd::run(&app, None, None, None, Some(&id), None).unwrap();
|
||||
assert_eq!(code, 0);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user