mirror of
https://github.com/openai/codex.git
synced 2026-05-05 22:01:37 +03:00
fix: move inline codex-rs/core unit tests into sibling files (#14444)
## Why PR #13783 moved the `codex.rs` unit tests into `codex_tests.rs`. This applies the same extraction pattern across the rest of `codex-rs/core` so the production modules stay focused on runtime code instead of large inline test blocks. Keeping the tests in sibling files also makes follow-up edits easier to review because product changes no longer have to share a file with hundreds or thousands of lines of test scaffolding. ## What changed - replaced each inline `mod tests { ... }` in `codex-rs/core/src/**` with a path-based module declaration - moved each extracted unit test module into a sibling `*_tests.rs` file, using `mod_tests.rs` for `mod.rs` modules - preserved the existing `cfg(...)` guards and module-local structure so the refactor remains structural rather than behavioral ## Testing - `cargo test -p codex-core --lib` (`1653 passed; 0 failed; 5 ignored`) - `just fix -p codex-core` - `cargo fmt --check` - `cargo shear`
This commit is contained in:
@@ -38,93 +38,5 @@ pub(crate) fn canonicalize_command_for_approval(command: &[String]) -> Vec<Strin
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use super::canonicalize_command_for_approval;
|
||||
use pretty_assertions::assert_eq;
|
||||
|
||||
#[test]
|
||||
fn canonicalizes_word_only_shell_scripts_to_inner_command() {
|
||||
let command_a = vec![
|
||||
"/bin/bash".to_string(),
|
||||
"-lc".to_string(),
|
||||
"cargo test -p codex-core".to_string(),
|
||||
];
|
||||
let command_b = vec![
|
||||
"bash".to_string(),
|
||||
"-lc".to_string(),
|
||||
"cargo test -p codex-core".to_string(),
|
||||
];
|
||||
|
||||
assert_eq!(
|
||||
canonicalize_command_for_approval(&command_a),
|
||||
vec![
|
||||
"cargo".to_string(),
|
||||
"test".to_string(),
|
||||
"-p".to_string(),
|
||||
"codex-core".to_string(),
|
||||
]
|
||||
);
|
||||
assert_eq!(
|
||||
canonicalize_command_for_approval(&command_a),
|
||||
canonicalize_command_for_approval(&command_b)
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn canonicalizes_heredoc_scripts_to_stable_script_key() {
|
||||
let script = "python3 <<'PY'\nprint('hello')\nPY";
|
||||
let command_a = vec![
|
||||
"/bin/zsh".to_string(),
|
||||
"-lc".to_string(),
|
||||
script.to_string(),
|
||||
];
|
||||
let command_b = vec!["zsh".to_string(), "-lc".to_string(), script.to_string()];
|
||||
|
||||
assert_eq!(
|
||||
canonicalize_command_for_approval(&command_a),
|
||||
vec![
|
||||
"__codex_shell_script__".to_string(),
|
||||
"-lc".to_string(),
|
||||
script.to_string(),
|
||||
]
|
||||
);
|
||||
assert_eq!(
|
||||
canonicalize_command_for_approval(&command_a),
|
||||
canonicalize_command_for_approval(&command_b)
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn canonicalizes_powershell_wrappers_to_stable_script_key() {
|
||||
let script = "Write-Host hi";
|
||||
let command_a = vec![
|
||||
"powershell.exe".to_string(),
|
||||
"-NoProfile".to_string(),
|
||||
"-Command".to_string(),
|
||||
script.to_string(),
|
||||
];
|
||||
let command_b = vec![
|
||||
"powershell".to_string(),
|
||||
"-Command".to_string(),
|
||||
script.to_string(),
|
||||
];
|
||||
|
||||
assert_eq!(
|
||||
canonicalize_command_for_approval(&command_a),
|
||||
vec![
|
||||
"__codex_powershell_script__".to_string(),
|
||||
script.to_string(),
|
||||
]
|
||||
);
|
||||
assert_eq!(
|
||||
canonicalize_command_for_approval(&command_a),
|
||||
canonicalize_command_for_approval(&command_b)
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn preserves_non_shell_commands() {
|
||||
let command = vec!["cargo".to_string(), "fmt".to_string()];
|
||||
assert_eq!(canonicalize_command_for_approval(&command), command);
|
||||
}
|
||||
}
|
||||
#[path = "command_canonicalization_tests.rs"]
|
||||
mod tests;
|
||||
|
||||
Reference in New Issue
Block a user