// 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; }