use crate::brain::provider::CommandCodeCliProvider;
use crate::brain::provider::Provider;
use crate::brain::provider::command_code_cli::{DEFAULT_MODEL, SUPPORTED_MODELS};
#[test]
fn default_model_is_deepseek_flash() {
let Ok(p) = CommandCodeCliProvider::new() else {
return;
};
assert_eq!(p.default_model(), "deepseek/deepseek-v4-flash");
}
#[test]
fn default_model_const_is_a_supported_model() {
assert!(
SUPPORTED_MODELS.contains(&DEFAULT_MODEL),
"DEFAULT_MODEL {DEFAULT_MODEL} must appear in SUPPORTED_MODELS"
);
assert!(
!SUPPORTED_MODELS.contains(&"taste-1"),
"taste-1 is not real"
);
}
#[test]
fn with_default_model_overrides() {
let Ok(p) = CommandCodeCliProvider::new() else {
return;
};
let p = p.with_default_model("claude-sonnet-5".to_string());
assert_eq!(p.default_model(), "claude-sonnet-5");
}
#[test]
fn supported_models_covers_each_provider_family() {
let Ok(p) = CommandCodeCliProvider::new() else {
return;
};
let models = p.supported_models();
assert!(models.iter().any(|m| m == "claude-sonnet-5"));
assert!(models.iter().any(|m| m == "gpt-5.5"));
assert!(models.iter().any(|m| m == "google/gemini-3.5-flash"));
assert!(models.iter().any(|m| m == "deepseek/deepseek-v4-flash"));
assert!(models.iter().any(|m| m == "zai-org/GLM-5.2"));
assert!(!models.iter().any(|m| m == "taste-1"));
}
#[test]
fn capability_flags_match_cli_subprocess_pattern() {
let Ok(p) = CommandCodeCliProvider::new() else {
return;
};
assert!(p.cli_handles_tools());
assert!(!p.cli_manages_context());
assert!(!p.supports_vision());
}
#[test]
fn name_is_command_code_cli() {
let Ok(p) = CommandCodeCliProvider::new() else {
return;
};
assert_eq!(p.name(), "command-code-cli");
}