// file: crates/ksp-config-lib/tests/transport_devnet_smoke.rs // version: 1 //! Opt-in live Devnet smoke for the Config -> Transport foundation path. #[tokio::test(flavor = "current_thread")] #[ignore = "opt-in live Solana Devnet smoke; performs external network requests"] async fn committed_devnet_transport_profile_reaches_all_foundation_canaries() { let workspace = std::path::PathBuf::from(env!("CARGO_MANIFEST_DIR")).join("../.."); let bootstrap = ksp_config_lib::ConfigBootstrapOptions::from_paths(workspace.join("config"), workspace.join("config/schemas")) .expect("committed Config roots must be valid"); let registry = ksp_config_lib::ConfigFileRegistry::defaults().expect("default Config registry must be valid"); let engine = ksp_config_lib::ConfigDocumentEngine::new(bootstrap, registry); let environment = ksp_config_lib::ConfigEnvironment::load().expect("Config must capture the opt-in smoke environment"); let resolved = engine .load_resolved_transport_config(std::option::Option::Some("devnet_public"), &environment) .expect("committed devnet_public Transport profile must resolve"); assert_eq!(resolved.profile_id(), "devnet_public"); let pool = ksp_onchain_transport_lib::HttpTransportPool::new(resolved.into_settings()).expect("resolved Transport settings must construct the HTTP pool"); let role = ksp_onchain_transport_lib::HttpRoleName::new("default"); let health = pool.get_health(&role).await.expect("Devnet getHealth smoke must succeed"); assert_eq!(health, ksp_onchain_transport_lib::SolanaNodeHealth::Healthy); let genesis_hash = pool.get_genesis_hash(&role).await.expect("Devnet getGenesisHash smoke must succeed"); assert!(!genesis_hash.as_str().is_empty()); let version = pool.get_version(&role).await.expect("Devnet getVersion smoke must succeed"); assert!(!version.solana_core().is_empty()); let balance = pool .get_balance(&role, &ksp_core_lib::PRGIDPK_SOLANA_SYSTEM, std::option::Option::None) .await .expect("Devnet getBalance smoke must succeed"); assert!(balance.context().slot() > 0); }