Add config enum warning integration test

This commit is contained in:
Ahmed Ibrahim
2026-05-07 02:23:07 +03:00
parent e3de954486
commit bd84525f3c
2 changed files with 50 additions and 0 deletions
@@ -0,0 +1,49 @@
use codex_config::CONFIG_TOML_FILE;
use codex_protocol::config_types::Verbosity;
use codex_protocol::protocol::AskForApproval;
use codex_protocol::protocol::EventMsg;
use codex_protocol::protocol::WarningEvent;
use core_test_support::responses::start_mock_server;
use core_test_support::test_codex::test_codex;
use core_test_support::wait_for_event;
use pretty_assertions::assert_eq;
const INVALID_SANDBOX_WARNING: &str =
"Ignoring invalid config value at sandbox_mode: \"hyperdrive\"";
#[tokio::test(flavor = "multi_thread", worker_threads = 2)]
async fn invalid_enum_config_emits_startup_warning_and_keeps_valid_settings() {
let server = start_mock_server().await;
let config_toml = r#"
model = "gpt-4o"
approval_policy = "never"
sandbox_mode = "hyperdrive"
model_verbosity = "high"
"#;
let mut builder = test_codex().with_pre_build_hook(move |home| {
std::fs::write(home.join(CONFIG_TOML_FILE), config_toml).expect("seed config.toml");
});
let test = builder.build(&server).await.expect("create conversation");
assert_eq!(
(
test.session_configured.model.as_str(),
test.session_configured.approval_policy,
test.config.model_verbosity,
),
("gpt-4o", AskForApproval::Never, Some(Verbosity::High)),
);
let warning = wait_for_event(&test.codex, |event| {
matches!(
event,
EventMsg::Warning(WarningEvent { message }) if message == INVALID_SANDBOX_WARNING
)
})
.await;
let EventMsg::Warning(WarningEvent { message }) = warning else {
panic!("expected invalid config warning");
};
assert_eq!(message, INVALID_SANDBOX_WARNING);
}
+1
View File
@@ -44,6 +44,7 @@ mod collaboration_instructions;
mod compact;
mod compact_remote;
mod compact_resume_fork;
mod config_warnings;
mod deprecation_notice;
mod exec;
mod exec_policy;