agent conversation fix
This commit is contained in:
@ -1020,8 +1020,8 @@ mod tests {
|
||||
let _ = std::fs::remove_file(&argv);
|
||||
}
|
||||
|
||||
/// Idem Codex : `codex exec resume <thread_id> --json --skip-git-repo-check <prompt>`
|
||||
/// (format RÉEL : sous-commande `resume`, pas un flag `--resume`).
|
||||
/// Idem Codex : `codex exec --json --skip-git-repo-check resume <thread_id> <prompt>`.
|
||||
/// Les options globales de `exec` doivent précéder la sous-commande `resume`.
|
||||
#[tokio::test]
|
||||
async fn codex_resume_command_carries_resume_subcommand() {
|
||||
let (cmd, argv) = make_recording_fake(&[
|
||||
@ -1045,6 +1045,21 @@ mod tests {
|
||||
assert!(args.contains(&"--json"), "vu: {args:?}");
|
||||
assert!(args.contains(&"--skip-git-repo-check"), "vu: {args:?}");
|
||||
assert!(args.contains(&"vas-y"), "vu: {args:?}");
|
||||
let resume_pos = args.iter().position(|a| *a == "resume").expect("resume");
|
||||
let id_pos = args.iter().position(|a| *a == "cx-id").expect("id");
|
||||
let json_pos = args.iter().position(|a| *a == "--json").expect("json");
|
||||
let skip_pos = args
|
||||
.iter()
|
||||
.position(|a| *a == "--skip-git-repo-check")
|
||||
.expect("skip");
|
||||
assert!(
|
||||
json_pos < resume_pos && resume_pos < id_pos,
|
||||
"exec options must precede resume, then the session id, vu: {args:?}"
|
||||
);
|
||||
assert!(
|
||||
skip_pos < resume_pos && resume_pos < id_pos,
|
||||
"exec options must precede resume, then the session id, vu: {args:?}"
|
||||
);
|
||||
let _ = std::fs::remove_file(&cmd);
|
||||
let _ = std::fs::remove_file(&argv);
|
||||
}
|
||||
@ -1311,7 +1326,7 @@ mod tests {
|
||||
// d'écriture Codex : la commande générée porte EXACTEMENT
|
||||
// [exec, --json, --skip-git-repo-check, --sandbox, workspace-write,
|
||||
// --add-dir, <project-root>, <prompt>]
|
||||
// (resume <id> en tête pour une reprise). Le flag `--ask-for-approval never`
|
||||
// (`resume <id>` après les options `exec` pour une reprise). Le flag `--ask-for-approval never`
|
||||
// a été RETIRÉ : `codex exec` 0.137 ne le connaît pas (`error: unexpected
|
||||
// argument`) et est déjà non-interactif. Ce test verrouille l'argv exact pour
|
||||
// qu'aucune régression ne réintroduise un flag inconnu de la sous-commande.
|
||||
@ -1358,9 +1373,9 @@ mod tests {
|
||||
let _ = std::fs::remove_file(&argv);
|
||||
}
|
||||
|
||||
/// REPRISE (seed d'id) : argv EXACT `[exec, resume, <id>, --json,
|
||||
/// --skip-git-repo-check, --sandbox, workspace-write, --add-dir, <project-root>,
|
||||
/// <prompt>]`. Toujours pas de `--ask-for-approval`.
|
||||
/// REPRISE (seed d'id) : argv EXACT `[exec, --json, --skip-git-repo-check,
|
||||
/// --sandbox, workspace-write, --add-dir, <project-root>, resume, <id>, <prompt>]`.
|
||||
/// Toujours pas de `--ask-for-approval`.
|
||||
#[tokio::test]
|
||||
async fn codex_resume_command_carries_exact_args() {
|
||||
let (cmd, argv) = make_recording_fake(&[
|
||||
@ -1383,17 +1398,17 @@ mod tests {
|
||||
args,
|
||||
vec![
|
||||
"exec",
|
||||
"resume",
|
||||
"cx-id",
|
||||
"--json",
|
||||
"--skip-git-repo-check",
|
||||
"--sandbox",
|
||||
"workspace-write",
|
||||
"--add-dir",
|
||||
"/project/root",
|
||||
"resume",
|
||||
"cx-id",
|
||||
"vas-y",
|
||||
],
|
||||
"argv reprise doit être exact (resume <id> en tête, sans --ask-for-approval), vu: {args:?}"
|
||||
"argv reprise doit être exact (options exec avant resume, sans --ask-for-approval), vu: {args:?}"
|
||||
);
|
||||
let _ = std::fs::remove_file(&cmd);
|
||||
let _ = std::fs::remove_file(&argv);
|
||||
|
||||
Reference in New Issue
Block a user