use super::debug_evaluation::ExpectedTablesEvaluation;
use super::debug_still_needed_sorted_keys::sorted_unique_keys;
pub(super) fn collect_missing_table_keys(
evaluation: &ExpectedTablesEvaluation,
) -> (Vec<String>, Vec<String>) {
(
sorted_unique_keys(&evaluation.missing_required_tables),
sorted_unique_keys(&evaluation.missing_optional_tables),
)
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn missing_table_keys_are_sorted_and_deduplicated() {
let mut evaluation = ExpectedTablesEvaluation::default();
evaluation.missing_required_tables = vec![
"public.gateway_request_log".to_string(),
"analytics.operation_log".to_string(),
"public.gateway_request_log".to_string(),
];
evaluation.missing_optional_tables = vec![
"public.route_request_log".to_string(),
"analytics.route_request_log".to_string(),
"public.route_request_log".to_string(),
];
let (required_missing_tables, optional_missing_tables) =
collect_missing_table_keys(&evaluation);
assert_eq!(
required_missing_tables,
vec![
"analytics.operation_log".to_string(),
"public.gateway_request_log".to_string()
]
);
assert_eq!(
optional_missing_tables,
vec![
"analytics.route_request_log".to_string(),
"public.route_request_log".to_string()
]
);
}
}