Codex Handbook
core/src/tools/handlers/agent_jobs_tests.rs 62 lines
use super::*;use pretty_assertions::assert_eq;use serde_json::json;#[test]fn parse_csv_supports_quotes_and_commas() {    let input = "id,name\n1,\"alpha, beta\"\n2,gamma\n";    let (headers, rows) = parse_csv(input).expect("csv parse");    assert_eq!(headers, vec!["id".to_string(), "name".to_string()]);    assert_eq!(        rows,        vec![            vec!["1".to_string(), "alpha, beta".to_string()],            vec!["2".to_string(), "gamma".to_string()]        ]    );}#[test]fn csv_escape_quotes_when_needed() {    assert_eq!(csv_escape("simple"), "simple");    assert_eq!(csv_escape("a,b"), "\"a,b\"");    assert_eq!(csv_escape("a\"b"), "\"a\"\"b\"");}#[test]fn render_instruction_template_expands_placeholders_and_escapes_braces() {    let row = json!({        "path": "src/lib.rs",        "area": "test",        "file path": "docs/readme.md",    });    let rendered = render_instruction_template(        "Review {path} in {area}. Also see {file path}. Use {{literal}}.",        &row,    );    assert_eq!(        rendered,        "Review src/lib.rs in test. Also see docs/readme.md. Use {literal}."    );}#[test]fn render_instruction_template_leaves_unknown_placeholders() {    let row = json!({        "path": "src/lib.rs",    });    let rendered = render_instruction_template("Check {path} then {missing}", &row);    assert_eq!(rendered, "Check src/lib.rs then {missing}");}#[test]fn ensure_unique_headers_rejects_duplicates() {    let headers = vec!["path".to_string(), "path".to_string()];    let Err(err) = ensure_unique_headers(headers.as_slice()) else {        panic!("expected duplicate header error");    };    assert_eq!(        err,        FunctionCallError::RespondToModel("csv header path is duplicated".to_string())    );}