33 lines
1.4 KiB
Rust
33 lines
1.4 KiB
Rust
// file: ks-config/tests/external_composition_api.rs
|
|
// version: 1
|
|
|
|
//! 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/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/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/example.listeners.config.json"
|
|
)) {
|
|
std::result::Result::Ok(value) => value,
|
|
std::result::Result::Err(error) => panic!("listeners must parse: {error}"),
|
|
};
|
|
let resolved = match ks_config::compose_app_config(&composition, &transport, &listeners) {
|
|
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());
|
|
}
|