v0.3.7-pre.006

This commit is contained in:
2026-09-02 15:05:18 +02:00
parent 57ff11b774
commit 3c4ae51ae2
18 changed files with 475 additions and 82 deletions

View File

@@ -1,7 +1,7 @@
// file: crates/ksp-app-backfill-desk/tests/config_composition.rs
// version: 4
// version: 5
//! Config composite, Transport readiness and Store-network composition contracts for Backfill Desk through pre.005.
//! Config composite, Transport readiness and Store-network composition contracts for Backfill Desk through pre.006.
#![forbid(unsafe_code)]
#![deny(unreachable_pub)]
@@ -32,7 +32,7 @@ fn assert_component(composite: &ksp_config_lib::ResolvedConfigComposite, compone
}
#[test]
fn pre_003_default_composite_selects_trace_devnet_logging_transport_and_store() {
fn pre_003_devnet_profile_selects_trace_logging_transport_and_store() {
let engine = workspace_engine();
assert!(engine.is_ok(), "workspace Config engine should be constructible: {engine:?}");
let engine = match engine {
@@ -45,8 +45,8 @@ fn pre_003_default_composite_selects_trace_devnet_logging_transport_and_store()
std::result::Result::Ok(value) => value,
std::result::Result::Err(_) => return,
};
let composite = engine.load_resolved_composite(&file_id, std::option::Option::None);
assert!(composite.is_ok(), "committed Backfill Desk composite should resolve: {composite:?}");
let composite = engine.load_resolved_composite(&file_id, std::option::Option::Some("devnet"));
assert!(composite.is_ok(), "committed Backfill Desk devnet profile should resolve: {composite:?}");
if let std::result::Result::Ok(composite) = composite {
assert_eq!(composite.profile_id(), "devnet");
assert_component(&composite, "logging", ksp_config_lib::FILE_ID_STD_LOGGING, "supertrace");
@@ -74,7 +74,7 @@ fn pre_003_named_profiles_keep_transport_and_store_network_selection_paired() {
std::result::Result::Err(_) => return,
};
for (profile_id, logging_profile, transport_profile, store_profile) in
[("mainnet", "console_info", "mainnet_public", "mainnet"), ("testnet", "console_info", "publicnode_testnet", "testnet")]
[("mainnet", "supertrace", "mainnet_backfill_pool", "mainnet"), ("testnet", "console_info", "publicnode_testnet", "testnet")]
{
let composite = engine.load_resolved_composite(&file_id, std::option::Option::Some(profile_id));
assert!(composite.is_ok(), "Backfill Desk composite profile {profile_id} should resolve: {composite:?}");
@@ -100,8 +100,8 @@ fn pre_004_default_composite_builds_http_pool_for_both_backfill_rpc_methods() {
std::result::Result::Ok(value) => value,
std::result::Result::Err(_) => return,
};
let composite = engine.load_resolved_composite(&file_id, std::option::Option::None);
assert!(composite.is_ok(), "committed Backfill Desk composite should resolve: {composite:?}");
let composite = engine.load_resolved_composite(&file_id, std::option::Option::Some("devnet"));
assert!(composite.is_ok(), "committed Backfill Desk devnet profile should resolve: {composite:?}");
let composite = match composite {
std::result::Result::Ok(value) => value,
std::result::Result::Err(_) => return,
@@ -215,3 +215,52 @@ fn pre_005_all_composite_profiles_keep_declared_http_and_store_networks_identica
}
}
}
#[test]
fn pre_006_default_mainnet_profile_exposes_pool_and_targeted_http_routes_without_secret_provider_data() {
let engine = workspace_engine();
assert!(engine.is_ok(), "workspace Config engine should be constructible: {engine:?}");
let engine = match engine {
std::result::Result::Ok(value) => value,
std::result::Result::Err(_) => return,
};
let file_id = ksp_config_lib::ConfigFileId::new(ksp_config_lib::FILE_ID_COMPOSITE_KSP_APP_BACKFILL_DESK);
let file_id = match file_id {
std::result::Result::Ok(value) => value,
std::result::Result::Err(_) => return,
};
let composite = engine.load_resolved_composite(&file_id, std::option::Option::None);
assert!(composite.is_ok(), "default Backfill Desk composite should resolve: {composite:?}");
let composite = match composite {
std::result::Result::Ok(value) => value,
std::result::Result::Err(_) => return,
};
assert_eq!(composite.profile_id(), "mainnet");
assert_component(&composite, "logging", ksp_config_lib::FILE_ID_STD_LOGGING, "supertrace");
assert_component(&composite, "transport", ksp_config_lib::FILE_ID_STD_TRANSPORT, "mainnet_backfill_pool");
assert_component(&composite, "store", ksp_config_lib::FILE_ID_STD_STORE, "mainnet");
let transport = match composite.component("transport") {
std::option::Option::Some(value) => value,
std::option::Option::None => return,
};
let profile = transport.resolved().profile();
let endpoints = profile.get("endpoints").and_then(serde_json::Value::as_array);
assert!(endpoints.is_some(), "mainnet Backfill Transport profile should expose HTTP endpoints");
let endpoints = match endpoints {
std::option::Option::Some(value) => value,
std::option::Option::None => return,
};
let providers = endpoints
.iter()
.filter_map(|endpoint| endpoint.get("provider").and_then(serde_json::Value::as_str))
.collect::<std::collections::BTreeSet<_>>();
assert_eq!(providers, std::collections::BTreeSet::from(["publicnode", "solana-public"]));
let roles = endpoints
.iter()
.flat_map(|endpoint| endpoint.get("roles").and_then(serde_json::Value::as_array).into_iter().flatten())
.filter_map(|role| role.get("role").and_then(serde_json::Value::as_str))
.collect::<std::collections::BTreeSet<_>>();
assert!(roles.contains("backfill_pool"));
assert!(roles.contains("backfill_publicnode"));
assert!(roles.contains("backfill_solana_public"));
}