Files
khadhroony-solana-project/crates/ksp-store-lib/unit_tests/health.rs
2026-08-29 21:40:57 +02:00

46 lines
2.1 KiB
Rust

// file: crates/ksp-store-lib/unit_tests/health.rs
// version: 1
fn network() -> ksp_store_api::RawNetworkId {
return match ksp_store_api::RawNetworkId::new("devnet") {
std::result::Result::Ok(value) => value,
std::result::Result::Err(error) => panic!("valid Store health test network rejected: {error:?}"),
};
}
#[test]
fn runtime_snapshot_is_backend_neutral_and_contains_only_safe_counts() {
let runtime = crate::StoreRuntimeSnapshot::new(crate::StoreBackendKind::Postgres, network(), 8, 3, 2, 1);
assert_eq!(runtime.backend_kind(), crate::StoreBackendKind::Postgres);
assert_eq!(runtime.network().as_str(), "devnet");
assert_eq!(runtime.pool_capacity(), 8);
assert_eq!(runtime.pool_size(), 3);
assert_eq!(runtime.pool_available(), 2);
assert_eq!(runtime.pool_waiting(), 1);
let rendered = format!("{runtime:?}");
for forbidden in ["postgresql://", "password", "username", "database", "SELECT ", "ksp_store_schema_migrations"] {
assert!(!rendered.contains(forbidden), "unsafe runtime snapshot material detected: {forbidden}");
}
return;
}
#[test]
fn health_snapshot_carries_only_safe_state_migration_and_error_code() {
let runtime = crate::StoreRuntimeSnapshot::new(crate::StoreBackendKind::Postgres, network(), 8, 1, 1, 0);
let ready = crate::StoreHealthSnapshot::new(crate::StoreHealthState::Ready, runtime.clone(), std::option::Option::Some(0), 0, std::option::Option::None);
assert_eq!(ready.state(), crate::StoreHealthState::Ready);
assert_eq!(ready.migration_version(), std::option::Option::Some(0));
assert_eq!(ready.pending_migration_count(), 0);
assert_eq!(ready.last_error_code(), std::option::Option::None);
let not_ready = crate::StoreHealthSnapshot::new(
crate::StoreHealthState::NotReady,
runtime,
std::option::Option::None,
0,
std::option::Option::Some(crate::ERROR_CODE_POSTGRES_HEALTH_FAILED),
);
assert_eq!(not_ready.state(), crate::StoreHealthState::NotReady);
assert_eq!(not_ready.last_error_code(), std::option::Option::Some(crate::ERROR_CODE_POSTGRES_HEALTH_FAILED));
return;
}