tui/src/test_support.rs
55 lines
//! Test-only helpers shared across the TUI crate.use std::sync::LazyLock;use codex_models_manager::bundled_models_response;use codex_protocol::openai_models::ModelPreset;pub(crate) use codex_utils_absolute_path::test_support::PathBufExt;pub(crate) use codex_utils_absolute_path::test_support::test_path_buf;use serde::Serialize;use serde::de::DeserializeOwned;pub(crate) static TEST_MODEL_PRESETS: LazyLock<Vec<ModelPreset>> = LazyLock::new(|| { let mut response = bundled_models_response() .unwrap_or_else(|err| panic!("bundled models.json should parse: {err}")); response.models.sort_by_key(|model| model.priority); let mut presets: Vec<ModelPreset> = response.models.into_iter().map(Into::into).collect(); ModelPreset::mark_default_by_picker_visibility(&mut presets); presets});pub(crate) fn test_path_display(path: &str) -> String { test_path_buf(path).display().to_string()}pub(crate) fn session_source_cli<T>() -> Twhere T: DeserializeOwned,{ from_app_server_wire(codex_app_server_protocol::SessionSource::Cli)}pub(crate) fn skill_scope_user<T>() -> Twhere T: DeserializeOwned,{ from_app_server_wire(codex_app_server_protocol::SkillScope::User)}pub(crate) fn skill_scope_repo<T>() -> Twhere T: DeserializeOwned,{ from_app_server_wire(codex_app_server_protocol::SkillScope::Repo)}fn from_app_server_wire<T>(value: impl Serialize) -> Twhere T: DeserializeOwned,{ serde_json::to_value(value) .and_then(serde_json::from_value) .unwrap_or_else(|err| { panic!("app-server wire value should map to legacy helper type: {err}") })}