use super::*;
#[test]
fn deepseek_matches_exact_base_url() {
assert_eq!(
Provider::from_base_url("https://api.deepseek.com"),
Some(Provider::DeepSeek)
);
}
#[test]
fn deepseek_matches_base_url_with_path() {
assert_eq!(
Provider::from_base_url("https://api.deepseek.com/v1"),
Some(Provider::DeepSeek)
);
}
#[test]
fn deepseek_rejects_host_extension() {
assert_eq!(
Provider::from_base_url("https://api.deepseek.com.evil.tld"),
None
);
assert_eq!(
Provider::from_base_url("https://api.deepseek.community"),
None
);
}
#[test]
fn deepseek_rejects_plain_http_and_unrelated_hosts() {
assert_eq!(Provider::from_base_url("http://api.deepseek.com"), None);
assert_eq!(Provider::from_base_url("https://api.anthropic.com"), None);
assert_eq!(Provider::from_base_url(""), None);
}
#[test]
fn deepseek_matches_uppercase_host() {
assert_eq!(
Provider::from_base_url("https://API.DeepSeek.com/v1"),
Some(Provider::DeepSeek)
);
}
#[test]
fn deepseek_matches_explicit_port() {
assert_eq!(
Provider::from_base_url("https://api.deepseek.com:443/v1"),
Some(Provider::DeepSeek)
);
}
use crate::testutil::HomeSandbox;
#[test]
fn disk_cache_roundtrips_stats() {
let _home = HomeSandbox::new();
let stats = ThirdPartyStats {
is_available: true,
rows: vec![StatRow {
label: "total".to_string(),
value: "110.00 USD".to_string(),
kind: StatRowKind::Body,
}],
};
write_third_party_disk_cache("tp-cache-test", &stats);
let loaded = load_third_party_disk_cache("tp-cache-test").expect("cache present");
assert!(loaded.is_available);
assert_eq!(loaded.rows.len(), 1);
assert_eq!(loaded.rows[0].value, "110.00 USD");
}
#[test]
fn disk_cache_missing_reads_as_none() {
let _home = HomeSandbox::new();
assert!(load_third_party_disk_cache("tp-cache-absent").is_none());
}