pub(super) use super::request_param_contracts::{NormalizedColumnQuery, NormalizedConstraintQuery};
pub(super) use super::request_params_columns::normalize_column_query;
pub(super) use super::request_params_constraints::normalize_constraint_query;
pub(super) use super::request_params_schema::normalize_schema_query;
#[cfg(test)]
mod tests {
use super::*;
use crate::api::schema::query_contracts::{ColumnQuery, ConstraintQuery};
#[test]
fn normalize_constraint_query_defaults_public_schema() {
let query = ConstraintQuery {
table_name: "users".to_string(),
table_schema: None,
};
let normalized = normalize_constraint_query(&query).expect("query should normalize");
assert_eq!(normalized.table_name, "users");
assert_eq!(normalized.table_schema, "public");
}
#[test]
fn normalize_column_query_keeps_optional_schema_none() {
let query = ColumnQuery {
table_name: "users".to_string(),
table_schema: None,
};
let normalized = normalize_column_query(&query).expect("query should normalize");
assert_eq!(normalized.table_name, "users");
assert!(normalized.table_schema.is_none());
}
#[test]
fn normalize_constraint_query_rejects_invalid_schema_name() {
let query = ConstraintQuery {
table_name: "users".to_string(),
table_schema: Some("public;drop".to_string()),
};
let result = normalize_constraint_query(&query);
assert!(result.is_err());
}
}