fix(ci): split checks and enforce warning-free Rust builds
This commit is contained in:
1 parent
dcbb1c69c5
commit
083ffe7a35
44 files changed
+363
-324
No files matched your search
@@ -436,7 +436,7 @@ mod tests {
|
||||
let first = state.mq_registry.get_or_build(&initial).await.unwrap();
|
||||
|
||||
let updated = mq_config("mq-conn", "http://127.0.0.1:8081");
|
||||
save_connection_configs(&state, &[updated.clone()]).await.unwrap();
|
||||
save_connection_configs(&state, std::slice::from_ref(&updated)).await.unwrap();
|
||||
|
||||
let cached_admin_url = state
|
||||
.configs
|
||||
@@ -465,7 +465,7 @@ mod tests {
|
||||
let state = AppState::new_with_plugin_dir(storage, dir.join("plugins"));
|
||||
let initial = mq_config("mq-conn", "http://127.0.0.1:8080");
|
||||
let updated = mq_config("mq-conn", "http://127.0.0.1:8081");
|
||||
state.storage.save_connections(&[updated.clone()]).await.unwrap();
|
||||
state.storage.save_connections(std::slice::from_ref(&updated)).await.unwrap();
|
||||
state.configs.write().await.insert(initial.id.clone(), initial.clone());
|
||||
state.connections.write().await.insert(initial.id.clone(), PoolKind::MessageQueue);
|
||||
|
||||
@@ -503,7 +503,7 @@ mod tests {
|
||||
}
|
||||
let stale = state.mq_registry.get_or_build(&removed).await.unwrap();
|
||||
|
||||
save_connection_configs(&state, &[kept.clone()]).await.unwrap();
|
||||
save_connection_configs(&state, std::slice::from_ref(&kept)).await.unwrap();
|
||||
|
||||
let configs = state.configs.read().await;
|
||||
assert!(configs.contains_key(&kept.id));
|
||||
@@ -532,7 +532,7 @@ mod tests {
|
||||
}
|
||||
state.connections.write().await.insert(removed.id.clone(), PoolKind::MessageQueue);
|
||||
|
||||
save_connection_configs(&state, &[kept.clone()]).await.unwrap();
|
||||
save_connection_configs(&state, std::slice::from_ref(&kept)).await.unwrap();
|
||||
|
||||
assert!(!state.connections.read().await.contains_key(&removed.id));
|
||||
|
||||
@@ -985,7 +985,7 @@ async fn test_connection_with_info_inner(
|
||||
#[cfg(feature = "mq-admin")]
|
||||
DatabaseType::MessageQueue => {
|
||||
let mqc = state.mq_admin_config_for_connection(connection_id, &config).await?;
|
||||
let kafka_launch = dbx_core::mq::service::resolve_kafka_launch_spec(&mqc, &state);
|
||||
let kafka_launch = dbx_core::mq::service::resolve_kafka_launch_spec(&mqc, state);
|
||||
let adapter = match state.mq_registry.get_or_build_config(connection_id, mqc, kafka_launch).await {
|
||||
Ok(adapter) => adapter,
|
||||
Err(err) => {
|
||||
|
||||
@@ -290,57 +290,6 @@ fn find_config_by_name<'a>(
|
||||
configs.iter().find(|c| c.name.eq_ignore_ascii_case(name))
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use super::{resolve_mongo_database, resolve_mongo_target_values, write_port_file};
|
||||
|
||||
#[test]
|
||||
fn writes_bridge_port_file_to_resolved_data_dir() {
|
||||
let root = std::env::temp_dir().join(format!(
|
||||
"dbx-mcp-bridge-port-test-{}-{}",
|
||||
std::process::id(),
|
||||
uuid::Uuid::new_v4()
|
||||
));
|
||||
let default_data_dir = root.join("default-app-data");
|
||||
let resolved_data_dir = root.join("resolved-data");
|
||||
std::fs::create_dir_all(&default_data_dir).unwrap();
|
||||
|
||||
let port_file = write_port_file(&resolved_data_dir, 49152).unwrap();
|
||||
|
||||
assert_eq!(port_file, resolved_data_dir.join("mcp-bridge-port"));
|
||||
assert_eq!(std::fs::read_to_string(port_file).unwrap(), "49152");
|
||||
assert!(!default_data_dir.join("mcp-bridge-port").exists());
|
||||
|
||||
let _ = std::fs::remove_dir_all(root);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn mongo_database_uses_configured_default_for_missing_or_blank_request() {
|
||||
let configured = Some("sample_db".to_string());
|
||||
|
||||
assert_eq!(resolve_mongo_database(None, configured.clone()), "sample_db");
|
||||
assert_eq!(resolve_mongo_database(Some(String::new()), configured.clone()), "sample_db");
|
||||
assert_eq!(resolve_mongo_database(Some(" ".to_string()), configured), "sample_db");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn mongo_database_preserves_explicit_target() {
|
||||
assert_eq!(resolve_mongo_database(Some("admin".to_string()), Some("sample_db".to_string())), "admin");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn mongo_target_keeps_connection_id_separate_from_database() {
|
||||
assert_eq!(
|
||||
resolve_mongo_target_values(
|
||||
"connection-id".to_string(),
|
||||
Some("sample_db".to_string()),
|
||||
Some("default_db".to_string()),
|
||||
),
|
||||
("connection-id".to_string(), "sample_db".to_string())
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
async fn respond(stream: &mut tokio::net::TcpStream, status: &str, body: &str) {
|
||||
let resp = format!("HTTP/1.1 {status}\r\nContent-Length: {}\r\n\r\n{body}", body.len());
|
||||
let _ = stream.write_all(resp.as_bytes()).await;
|
||||
@@ -969,3 +918,54 @@ async fn handle_execute_query_data(state: &Arc<AppState>, body: &str, stream: &m
|
||||
Err(e) => respond_error(stream, "500 Internal Server Error", &e).await,
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use super::{resolve_mongo_database, resolve_mongo_target_values, write_port_file};
|
||||
|
||||
#[test]
|
||||
fn writes_bridge_port_file_to_resolved_data_dir() {
|
||||
let root = std::env::temp_dir().join(format!(
|
||||
"dbx-mcp-bridge-port-test-{}-{}",
|
||||
std::process::id(),
|
||||
uuid::Uuid::new_v4()
|
||||
));
|
||||
let default_data_dir = root.join("default-app-data");
|
||||
let resolved_data_dir = root.join("resolved-data");
|
||||
std::fs::create_dir_all(&default_data_dir).unwrap();
|
||||
|
||||
let port_file = write_port_file(&resolved_data_dir, 49152).unwrap();
|
||||
|
||||
assert_eq!(port_file, resolved_data_dir.join("mcp-bridge-port"));
|
||||
assert_eq!(std::fs::read_to_string(port_file).unwrap(), "49152");
|
||||
assert!(!default_data_dir.join("mcp-bridge-port").exists());
|
||||
|
||||
let _ = std::fs::remove_dir_all(root);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn mongo_database_uses_configured_default_for_missing_or_blank_request() {
|
||||
let configured = Some("sample_db".to_string());
|
||||
|
||||
assert_eq!(resolve_mongo_database(None, configured.clone()), "sample_db");
|
||||
assert_eq!(resolve_mongo_database(Some(String::new()), configured.clone()), "sample_db");
|
||||
assert_eq!(resolve_mongo_database(Some(" ".to_string()), configured), "sample_db");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn mongo_database_preserves_explicit_target() {
|
||||
assert_eq!(resolve_mongo_database(Some("admin".to_string()), Some("sample_db".to_string())), "admin");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn mongo_target_keeps_connection_id_separate_from_database() {
|
||||
assert_eq!(
|
||||
resolve_mongo_target_values(
|
||||
"connection-id".to_string(),
|
||||
Some("sample_db".to_string()),
|
||||
Some("default_db".to_string()),
|
||||
),
|
||||
("connection-id".to_string(), "sample_db".to_string())
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -238,7 +238,6 @@ mod execution_tests {
|
||||
assert_eq!(summary.status, SqlFileStatus::Cancelled);
|
||||
}
|
||||
|
||||
#[test]
|
||||
#[test]
|
||||
fn duplicate_execution_id_is_rejected_without_replacing_token() {
|
||||
let mut executions = HashMap::new();
|
||||
|
||||
Reference in new issue
Block a user