#![cfg(all(feature = "cli", feature = "backend-http"))]
use proserpina::cli::run_critique;
#[test]
fn run_critique_errors_when_no_provider_keys_are_set() {
for var in [
"DEEPSEEK_API_KEY",
"OPENAI_API_KEY",
"MOONSHOT_API_KEY",
"DASHSCOPE_API_KEY",
"ZAI_API_KEY",
"GOOGLE_API_KEY",
] {
std::env::remove_var(var);
}
std::env::set_var("PI_HOME", "/nonexistent/pi-test");
let temp_config = tempfile::NamedTempFile::new().expect("tempfile");
std::fs::write(temp_config.path(), "# empty\n").expect("write");
std::env::set_var("PROSERPINA_CONFIG", temp_config.path());
let result = run_critique(
"# Plan\n\nbody",
"plan.md",
0,
None,
false,
None,
proserpina::backend::http::RetryPolicy::NONE,
None,
&[],
);
let err = result.expect_err("no keys set -> should error");
let msg = format!("{err}");
assert!(
msg.to_lowercase().contains("no api keys"),
"expected a no-keys message, got: {msg}"
);
}