use super::state::BancoStateInner;
use crate::serve::backends::PrivacyTier;
#[test]
#[allow(non_snake_case)]
fn test_BANCO_STA_001_with_defaults() {
let state = BancoStateInner::with_defaults();
assert_eq!(state.privacy_tier, PrivacyTier::Standard);
}
#[test]
#[allow(non_snake_case)]
fn test_BANCO_STA_002_with_sovereign_privacy() {
let state = BancoStateInner::with_privacy(PrivacyTier::Sovereign);
assert_eq!(state.privacy_tier, PrivacyTier::Sovereign);
}
#[test]
#[allow(non_snake_case)]
fn test_BANCO_STA_002_with_private_privacy() {
let state = BancoStateInner::with_privacy(PrivacyTier::Private);
assert_eq!(state.privacy_tier, PrivacyTier::Private);
}
#[test]
#[allow(non_snake_case)]
fn test_BANCO_STA_003_health_status() {
let state = BancoStateInner::with_defaults();
let health = state.health_status();
assert_eq!(health.status, "ok");
assert_eq!(health.circuit_breaker_state, "closed");
assert!(health.uptime_secs < 2);
}
#[test]
#[allow(non_snake_case)]
fn test_BANCO_STA_004_list_models_standard() {
let state = BancoStateInner::with_defaults();
let models = state.list_models();
assert_eq!(models.object, "list");
assert!(!models.data.is_empty());
for model in &models.data {
assert_eq!(model.object, "model");
assert_eq!(model.owned_by, "batuta");
}
}
#[test]
#[allow(non_snake_case)]
fn test_BANCO_STA_004_list_models_sovereign() {
let state = BancoStateInner::with_privacy(PrivacyTier::Sovereign);
let models = state.list_models();
for model in &models.data {
assert!(model.local, "sovereign model {:?} should be local", model.id);
}
}
#[test]
#[allow(non_snake_case)]
fn test_BANCO_STA_005_system_info() {
let state = BancoStateInner::with_defaults();
let info = state.system_info();
assert_eq!(info.privacy_tier, "Standard");
assert!(!info.backends.is_empty());
assert!(!info.version.is_empty());
}
#[test]
#[allow(non_snake_case)]
fn test_BANCO_STA_005_system_info_sovereign() {
let state = BancoStateInner::with_privacy(PrivacyTier::Sovereign);
let info = state.system_info();
assert_eq!(info.privacy_tier, "Sovereign");
}
#[test]
#[allow(non_snake_case)]
fn test_BANCO_STA_006_circuit_breaker_in_health() {
let state = BancoStateInner::with_defaults();
state.circuit_breaker.record(10.0);
let health = state.health_status();
assert_eq!(health.circuit_breaker_state, "open");
}