Files
codex/codex-rs/cli/tests/config.rs
2025-09-26 14:05:58 -07:00

45 lines
1.2 KiB
Rust

use std::fs;
use std::path::Path;
use anyhow::Result;
use assert_cmd::Command;
use tempfile::TempDir;
fn codex_command(codex_home: &Path) -> Result<Command> {
let mut cmd = Command::cargo_bin("codex")?;
cmd.env("CODEX_HOME", codex_home);
Ok(cmd)
}
#[test]
fn config_subcommand_reports_success_for_valid_config() -> Result<()> {
let codex_home = TempDir::new()?;
let config_path = codex_home.path().join("config.toml");
fs::write(config_path, "model = \"gpt-5\"\n")?;
let mut cmd = codex_command(codex_home.path())?;
let output = cmd.arg("config").output()?;
assert!(output.status.success());
let stdout = String::from_utf8(output.stdout)?;
assert!(stdout.contains("Current default config settings"));
Ok(())
}
#[test]
fn config_subcommand_exits_with_code_three_on_validation_error() -> Result<()> {
let codex_home = TempDir::new()?;
let config_path = codex_home.path().join("config.toml");
fs::write(config_path, "model = 123\n")?;
let mut cmd = codex_command(codex_home.path())?;
let output = cmd.arg("config").output()?;
assert_eq!(output.status.code(), Some(3));
let stderr = String::from_utf8(output.stderr)?;
assert!(stderr.contains("Config validation error"));
Ok(())
}