use super::debug_contracts::LoggingSchemaDebugReport;
use super::debug_report_output_from_components_from_stage_output_assembly::build_debug_report_output_from_components_from_stage_output_assembly;
use super::debug_report_output_from_components_input_contracts::LoggingSchemaDebugReportOutputFromComponentsInput;
use super::debug_report_output_from_components_stage_input_assembly::build_debug_report_output_from_components_stage_input_assembly;
use super::debug_report_output_from_components_stage_output_assembly::build_debug_report_output_from_components_stage_output_assembly;
pub(super) fn build_logging_schema_debug_report_from_components_output_from_input(
input: LoggingSchemaDebugReportOutputFromComponentsInput,
) -> LoggingSchemaDebugReport {
let LoggingSchemaDebugReportOutputFromComponentsInput {
logging_client,
components,
} = input;
let stage_input = build_debug_report_output_from_components_stage_input_assembly(
logging_client.as_str(),
components,
);
let stage = build_debug_report_output_from_components_stage_output_assembly(stage_input);
build_debug_report_output_from_components_from_stage_output_assembly(stage)
}
#[cfg(test)]
mod tests {
use super::*;
use crate::api::schema::debug_report_output_from_components_stage_test_fixtures::build_report_output_from_components_input_healthy_empty_for_tests;
#[test]
fn report_from_components_preserves_logging_client_and_components() {
let report = build_logging_schema_debug_report_from_components_output_from_input(
build_report_output_from_components_input_healthy_empty_for_tests(),
);
assert_eq!(report.logging_client, "athena_logging");
assert_eq!(report.summary.health, "healthy");
assert!(report.expected_tables.is_empty());
assert!(report.observed_tables.is_empty());
}
}