v0.3.7-pre.013

This commit is contained in:
2026-09-02 21:10:07 +02:00
parent 7697f407db
commit fa04bdbcf6
9 changed files with 417 additions and 9 deletions

View File

@@ -1,5 +1,5 @@
// file: crates/ksp-app-backfill-desk/tests/config_composition.rs
// version: 6
// version: 7
//! Config composite, Transport readiness and Store-network composition contracts for Backfill Desk through pre.006.
@@ -264,3 +264,45 @@ fn pre_006_default_mainnet_profile_exposes_pool_and_targeted_http_routes_without
assert!(roles.contains("backfill_publicnode"));
assert!(roles.contains("backfill_solana_public"));
}
#[test]
fn pre_013_composite_profile_and_component_inventory_is_exact() {
let workspace = std::path::PathBuf::from(env!("CARGO_MANIFEST_DIR")).join("../..");
let source = std::fs::read_to_string(workspace.join("config/composite.ksp-app-backfill-desk.json"));
assert!(source.is_ok(), "Backfill Desk composite should be readable");
let source = match source {
std::result::Result::Ok(value) => value,
std::result::Result::Err(_) => return,
};
let document = serde_json::from_str::<serde_json::Value>(source.as_str());
assert!(document.is_ok(), "Backfill Desk composite should remain valid JSON");
let document = match document {
std::result::Result::Ok(value) => value,
std::result::Result::Err(_) => return,
};
assert_eq!(document.get("default_profile").and_then(serde_json::Value::as_str), std::option::Option::Some("mainnet"));
let profiles = document.get("profiles").and_then(serde_json::Value::as_array);
assert!(profiles.is_some(), "Backfill Desk composite should expose profiles");
let profiles = match profiles {
std::option::Option::Some(value) => value,
std::option::Option::None => return,
};
let profile_ids = profiles
.iter()
.filter_map(|profile| return profile.get("profile_id").and_then(serde_json::Value::as_str))
.collect::<std::collections::BTreeSet<_>>();
assert_eq!(profile_ids, std::collections::BTreeSet::from(["devnet", "mainnet", "testnet"]));
for profile in profiles {
let documents = profile.get("documents").and_then(serde_json::Value::as_array);
assert!(documents.is_some(), "every Backfill Desk profile should expose component documents");
let documents = match documents {
std::option::Option::Some(value) => value,
std::option::Option::None => continue,
};
let component_ids = documents
.iter()
.filter_map(|document| return document.get("component_id").and_then(serde_json::Value::as_str))
.collect::<std::collections::BTreeSet<_>>();
assert_eq!(component_ids, std::collections::BTreeSet::from(["logging", "store", "transport"]));
}
}