v0.3.7-pre.013
This commit is contained in:
@@ -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"]));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user