use crate::ModelsManagerConfig; use crate::manager::ModelsManager; use codex_protocol::openai_models::TruncationPolicyConfig; use pretty_assertions::assert_eq; use tempfile::TempDir; use super::TestModelsEndpoint; use super::openai_manager_for_tests; #[tokio::test(flavor = "multi_thread", worker_threads = 2)] async fn offline_model_info_without_tool_output_override() { let codex_home = TempDir::new().expect("create temp dir"); let config = ModelsManagerConfig::default(); let manager = openai_manager_for_tests( codex_home.path().to_path_buf(), TestModelsEndpoint::new(Vec::new()), ); let model_info = manager.get_model_info("gpt-5.2", &config).await; assert_eq!( model_info.truncation_policy, TruncationPolicyConfig::bytes(/*limit*/ 10_000) ); } #[tokio::test(flavor = "multi_thread", worker_threads = 2)] async fn offline_model_info_with_tool_output_override() { let codex_home = TempDir::new().expect("create temp dir"); let config = ModelsManagerConfig { tool_output_token_limit: Some(123), ..Default::default() }; let manager = openai_manager_for_tests( codex_home.path().to_path_buf(), TestModelsEndpoint::new(Vec::new()), ); let model_info = manager.get_model_info("gpt-5.4", &config).await; assert_eq!( model_info.truncation_policy, TruncationPolicyConfig::tokens(/*limit*/ 123) ); }