use super::*;
#[test]
fn the_shapes_that_broke_routing_are_distinct() {
let (agy, agy_shape) = provider_for_cli(AgentKind::Antigravity);
let (qwen, qwen_shape) = provider_for_cli(AgentKind::Qwen);
assert_eq!(agy_shape, MeteringShape::PerModelFamily);
assert_eq!(qwen_shape, MeteringShape::AccountPool);
assert_ne!(agy, qwen);
}
#[test]
fn a_spend_budget_is_not_a_time_windowed_pool() {
let (_, shape) = provider_for_cli(AgentKind::OpenCode);
assert_eq!(shape, MeteringShape::SpendBudget);
}
#[test]
fn unobserved_providers_are_unknown_not_invented() {
for cli in [AgentKind::Kilo, AgentKind::MiMoCode, AgentKind::Codebuff, AgentKind::Custom] {
let (provider, shape) = provider_for_cli(cli);
assert!(provider.is_unknown(), "{} must not be given an invented provider", cli.as_str());
assert_eq!(shape, MeteringShape::Unknown);
}
}
#[test]
fn a_known_vendor_may_still_have_unknown_metering() {
let (provider, shape) = provider_for_cli(AgentKind::Grok);
assert_eq!(provider.as_str(), "xai");
assert!(!provider.is_unknown());
assert_eq!(shape, MeteringShape::Unknown);
}
#[test]
fn commandcode_is_its_own_provider() {
let (provider, shape) = provider_for_cli(AgentKind::CommandCode);
assert_eq!(provider.as_str(), "commandcode.ai");
assert!(!provider.is_unknown());
assert_eq!(shape, MeteringShape::Unknown);
}
#[test]
fn one_vendor_two_cli_routes_are_two_providers() {
let (agy, _) = provider_for_cli(AgentKind::Antigravity);
let (gemini, _) = provider_for_cli(AgentKind::Gemini);
assert_ne!(agy, gemini);
}
#[test]
fn no_builtin_cli_is_local_egress() {
for cli in AgentKind::ALL_BUILTIN {
let tier = egress_for_cli(*cli);
assert!(
!tier.admits_local(),
"{} must not admit --egress local (got {})",
cli.as_str(),
tier.label()
);
}
}
#[test]
fn only_loopback_base_url_is_local() {
assert_eq!(egress_for_base_url("http://127.0.0.1:11434/v1"), EgressTier::Local);
assert_eq!(egress_for_base_url("http://localhost:8080/v1"), EgressTier::Local);
assert_eq!(egress_for_base_url("http://[::1]:8080/v1"), EgressTier::Local);
assert_eq!(
egress_for_base_url("https://token-plan-sgp.xiaomimimo.com/v1"),
EgressTier::ThirdParty
);
assert_eq!(egress_for_base_url(""), EgressTier::Unknown);
}
#[test]
fn unknown_provider_does_not_admit_local() {
assert!(!egress_for_provider(&ProviderId::unknown()).admits_local());
assert!(!egress_for_provider(&ProviderId::new("openai-chatgpt-plan")).admits_local());
}