v0.1.4-pre.015-fix.002
This commit is contained in:
@@ -1,18 +1,18 @@
|
||||
// file: crates/ksp-config-lib/unit_tests/composite.rs
|
||||
// version: 2
|
||||
// version: 3
|
||||
|
||||
const TEST_COMPOSITE_FILE_ID: &str = "cfg.composite.test";
|
||||
const TEST_COMPOSITE_FILENAME: &str = "examples/composite.example.json";
|
||||
|
||||
#[test]
|
||||
fn committed_composite_example_resolves_default_document_profile() {
|
||||
let engine = committed_engine();
|
||||
fn fixture_composite_example_resolves_default_document_profile() {
|
||||
let engine = fixture_example_engine();
|
||||
let file_id = crate::ConfigFileId::new(TEST_COMPOSITE_FILE_ID);
|
||||
assert!(engine.is_ok(), "composite test engine should be constructible: {engine:?}");
|
||||
assert!(file_id.is_ok(), "composite test file_id should be valid: {file_id:?}");
|
||||
if let (std::result::Result::Ok(engine), std::result::Result::Ok(file_id)) = (engine, file_id) {
|
||||
let resolved = engine.load_resolved_composite(&file_id, std::option::Option::None);
|
||||
assert!(resolved.is_ok(), "committed composite example should resolve: {resolved:?}");
|
||||
assert!(resolved.is_ok(), "fixture composite example should resolve: {resolved:?}");
|
||||
if let std::result::Result::Ok(resolved) = resolved {
|
||||
assert_eq!(resolved.profile_id(), "local_default");
|
||||
assert_eq!(resolved.selection_source(), crate::ConfigProfileSelectionSource::DefaultProfile);
|
||||
@@ -20,7 +20,12 @@ fn committed_composite_example_resolves_default_document_profile() {
|
||||
assert!(logging.is_some(), "logging component should be resolved");
|
||||
if let std::option::Option::Some(logging) = logging {
|
||||
assert_eq!(logging.resolved().file_id().as_str(), crate::FILE_ID_STD_LOGGING);
|
||||
assert_eq!(logging.resolved().profile_id(), "local_dev");
|
||||
let logging_document = engine.load_validated_document(logging.resolved().file_id());
|
||||
assert!(logging_document.is_ok(), "referenced Logging document should validate: {logging_document:?}");
|
||||
if let std::result::Result::Ok(logging_document) = logging_document {
|
||||
let default_profile = logging_document.value().get("default_profile").and_then(serde_json::Value::as_str);
|
||||
assert_eq!(default_profile, std::option::Option::Some(logging.resolved().profile_id()));
|
||||
}
|
||||
assert_eq!(logging.resolved().selection_source(), crate::ConfigProfileSelectionSource::DefaultProfile);
|
||||
assert_eq!(logging.resolved().origin("logs_directory"), std::option::Option::Some(crate::ConfigValueOrigin::Global));
|
||||
}
|
||||
@@ -30,7 +35,7 @@ fn committed_composite_example_resolves_default_document_profile() {
|
||||
|
||||
#[test]
|
||||
fn composite_profile_override_marks_referenced_profile_selection_as_composite() {
|
||||
let engine = committed_engine();
|
||||
let engine = fixture_example_engine();
|
||||
let file_id = crate::ConfigFileId::new(TEST_COMPOSITE_FILE_ID);
|
||||
assert!(engine.is_ok(), "composite test engine should be constructible: {engine:?}");
|
||||
assert!(file_id.is_ok(), "composite test file_id should be valid: {file_id:?}");
|
||||
@@ -51,7 +56,7 @@ fn composite_profile_override_marks_referenced_profile_selection_as_composite()
|
||||
|
||||
#[test]
|
||||
fn unknown_composite_profile_has_profile_not_found_error() {
|
||||
let engine = committed_engine();
|
||||
let engine = fixture_example_engine();
|
||||
let file_id = crate::ConfigFileId::new(TEST_COMPOSITE_FILE_ID);
|
||||
assert!(engine.is_ok(), "composite test engine should be constructible: {engine:?}");
|
||||
assert!(file_id.is_ok(), "composite test file_id should be valid: {file_id:?}");
|
||||
@@ -123,9 +128,10 @@ fn duplicate_component_ids_are_rejected_inside_one_composite_profile() {
|
||||
cleanup_fixture(&fixture);
|
||||
}
|
||||
|
||||
fn committed_engine() -> ksp_core_lib::Result<crate::ConfigDocumentEngine> {
|
||||
fn fixture_example_engine() -> ksp_core_lib::Result<crate::ConfigDocumentEngine> {
|
||||
let workspace = workspace_root();
|
||||
let bootstrap = crate::ConfigBootstrapOptions::from_paths(workspace.join("config"), workspace.join("config/schemas"));
|
||||
let fixture_root = std::path::PathBuf::from(env!("CARGO_MANIFEST_DIR")).join("unit_tests/fixtures");
|
||||
let bootstrap = crate::ConfigBootstrapOptions::from_paths(fixture_root, workspace.join("config/schemas"));
|
||||
let bootstrap = match bootstrap {
|
||||
std::result::Result::Ok(value) => value,
|
||||
std::result::Result::Err(error) => return std::result::Result::Err(error),
|
||||
@@ -205,7 +211,8 @@ fn prepare_fixture(fixture: &FixtureRoots, composite: &str) -> std::io::Result<(
|
||||
return std::result::Result::Err(error);
|
||||
}
|
||||
let workspace = workspace_root();
|
||||
let logging = std::fs::copy(workspace.join("config/std.logging.json"), fixture.config.join(crate::DEFAULT_STD_LOGGING_FILENAME));
|
||||
let stable_logging = std::path::PathBuf::from(env!("CARGO_MANIFEST_DIR")).join("unit_tests/fixtures/std.logging.json");
|
||||
let logging = std::fs::copy(stable_logging, fixture.config.join(crate::DEFAULT_STD_LOGGING_FILENAME));
|
||||
if let std::result::Result::Err(error) = logging {
|
||||
return std::result::Result::Err(error);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user