Files
khadhroony-bot3/ks-config/tests/external_composition_api.rs
2026-08-10 11:21:07 +02:00

58 lines
2.3 KiB
Rust

// file: ks-config/tests/external_composition_api.rs
// version: 2
//! External API coverage for binary composition and shared configuration documents.
#[test]
fn external_consumer_resolves_composition_through_crate_root_exports() {
let composition = match ks_config::parse_composition_json(include_str!(
"../../config/exemples/example.kb-app-demo-desktop.default.config.json"
)) {
std::result::Result::Ok(value) => value,
std::result::Result::Err(error) => panic!("composition must parse: {error}"),
};
let transport = match ks_config::parse_transport_json(include_str!(
"../../config/exemples/example.transport.config.json"
)) {
std::result::Result::Ok(value) => value,
std::result::Result::Err(error) => panic!("transport must parse: {error}"),
};
let listeners = match ks_config::parse_listeners_json(include_str!(
"../../config/exemples/example.listeners.config.json"
)) {
std::result::Result::Ok(value) => value,
std::result::Result::Err(error) => panic!("listeners must parse: {error}"),
};
let store = match ks_config::parse_store_json(include_str!(
"../../config/exemples/example.store.config.json"
)) {
std::result::Result::Ok(value) => value,
std::result::Result::Err(error) => panic!("store must parse: {error}"),
};
let wallet = match ks_config::parse_wallet_json(include_str!(
"../../config/exemples/example.wallet.config.json"
)) {
std::result::Result::Ok(value) => value,
std::result::Result::Err(error) => panic!("wallet must parse: {error}"),
};
let execution = match ks_config::parse_execution_json(include_str!(
"../../config/exemples/example.execution.config.json"
)) {
std::result::Result::Ok(value) => value,
std::result::Result::Err(error) => panic!("execution must parse: {error}"),
};
let resolved = match ks_config::compose_app_config(
&composition,
&transport,
&listeners,
&store,
&wallet,
&execution,
) {
std::result::Result::Ok(value) => value,
std::result::Result::Err(error) => panic!("composition must resolve: {error}"),
};
assert_eq!(resolved.active_profile, composition.active_profile);
assert_eq!(resolved.profiles.len(), composition.profiles.len());
}