v0.1.3-pre.009

This commit is contained in:
2026-08-15 21:25:08 +02:00
parent d1196c03e5
commit a5b4c748ea
17 changed files with 1121 additions and 42 deletions

View File

@@ -1,7 +1,7 @@
// file: crates/ksp-config-lib/tests/public_api.rs
// version: 5
// version: 6
//! Integration tests for the public `ksp-config-lib` bootstrap, file registry, validated JSON document and profile-resolution contracts.
//! Integration tests for the public `ksp-config-lib` bootstrap, file registry, validated JSON document, profile-resolution and composite contracts.
#[test]
fn bootstrap_contract_is_available_from_crate_root() {
@@ -116,3 +116,20 @@ fn resolved_profile_contract_is_available_from_crate_root() {
}
}
}
#[test]
fn composite_schema_and_provenance_contracts_are_available_from_crate_root() {
let registry = ksp_config_lib::ConfigFileRegistry::defaults();
let schema_id = ksp_config_lib::ConfigFileId::new(ksp_config_lib::FILE_ID_SCHEMA_COMPOSITE);
assert!(registry.is_ok(), "public registry should remain constructible: {registry:?}");
assert!(schema_id.is_ok(), "public composite schema file_id should be valid: {schema_id:?}");
if let (std::result::Result::Ok(registry), std::result::Result::Ok(schema_id)) = (registry, schema_id) {
let descriptor = registry.descriptor(&schema_id);
assert!(descriptor.is_ok(), "public composite schema descriptor should exist: {descriptor:?}");
if let std::result::Result::Ok(descriptor) = descriptor {
assert_eq!(descriptor.filename(), std::path::Path::new(ksp_config_lib::DEFAULT_COMPOSITE_SCHEMA_FILENAME));
assert_eq!(descriptor.kind(), ksp_config_lib::ConfigFileKind::Schema);
}
}
assert_ne!(ksp_config_lib::ConfigProfileSelectionSource::Composite, ksp_config_lib::ConfigProfileSelectionSource::Explicit);
}