From 292c1175093983c640d7976878b95722b90e7060 Mon Sep 17 00:00:00 2001 From: Jason Date: Sat, 9 May 2026 09:04:01 +0800 Subject: [PATCH] chore(backend): satisfy cargo fmt and clippy --all-targets - Apply rustfmt diffs in claude_desktop_config.rs - Allow needless_return on current_platform_paths (cfg-mirrored arms) - Allow too_many_arguments on RequestForwarder::forward - Replace `let mut + reassign` with struct literals in tests (settings, backup, provider, response_processor) - Use Path::new instead of PathBuf::from to fix cmp_owned in misc tests - Replace 3.14 with 3.5 in config test to avoid approx_constant lint --- src-tauri/src/claude_desktop_config.rs | 24 +++-- src-tauri/src/commands/misc.rs | 6 +- src-tauri/src/commands/settings.rs | 112 ++++++++++++---------- src-tauri/src/config.rs | 2 +- src-tauri/src/database/backup.rs | 6 +- src-tauri/src/provider.rs | 6 +- src-tauri/src/proxy/forwarder.rs | 1 + src-tauri/src/proxy/response_processor.rs | 8 +- 8 files changed, 92 insertions(+), 73 deletions(-) diff --git a/src-tauri/src/claude_desktop_config.rs b/src-tauri/src/claude_desktop_config.rs index 08a0a9e4d..140b042b7 100644 --- a/src-tauri/src/claude_desktop_config.rs +++ b/src-tauri/src/claude_desktop_config.rs @@ -586,15 +586,12 @@ pub fn map_proxy_request_model(mut body: Value, provider: &Provider) -> Result Result<(), AppError> { @@ -645,9 +644,7 @@ where Err(err) => match restore_snapshots(&snapshots) { Ok(()) => Err(err), Err(rollback_err) => { - log::error!( - "Failed to rollback Claude Desktop config after error: {rollback_err}" - ); + log::error!("Failed to rollback Claude Desktop config after error: {rollback_err}"); Err(AppError::Message(format!( "{err}; rollback failed: {rollback_err}" ))) @@ -894,6 +891,7 @@ fn is_supported_platform() -> bool { cfg!(any(target_os = "macos", windows)) } +#[allow(clippy::needless_return)] fn current_platform_paths() -> Result { #[cfg(target_os = "macos")] { diff --git a/src-tauri/src/commands/misc.rs b/src-tauri/src/commands/misc.rs index ddcfcd709..d68636667 100644 --- a/src-tauri/src/commands/misc.rs +++ b/src-tauri/src/commands/misc.rs @@ -1591,7 +1591,7 @@ pub async fn set_window_theme(window: tauri::Window, theme: String) -> Result<() #[cfg(test)] mod tests { use super::*; - use std::path::PathBuf; + use std::path::{Path, PathBuf}; #[test] fn test_extract_version() { @@ -1679,7 +1679,7 @@ mod tests { let count = paths .iter() - .filter(|path| **path == PathBuf::from("/same/path")) + .filter(|path| path.as_path() == Path::new("/same/path")) .count(); assert_eq!(count, 1); } @@ -1691,7 +1691,7 @@ mod tests { let count = paths .iter() - .filter(|path| **path == PathBuf::from("/home/tester/.bun/bin")) + .filter(|path| path.as_path() == Path::new("/home/tester/.bun/bin")) .count(); assert_eq!(count, 1); } diff --git a/src-tauri/src/commands/settings.rs b/src-tauri/src/commands/settings.rs index 408fced23..f67fbf227 100644 --- a/src-tauri/src/commands/settings.rs +++ b/src-tauri/src/commands/settings.rs @@ -87,13 +87,15 @@ mod tests { #[test] fn save_settings_should_preserve_existing_webdav_when_payload_omits_it() { - let mut existing = AppSettings::default(); - existing.webdav_sync = Some(WebDavSyncSettings { - base_url: "https://dav.example.com".to_string(), - username: "alice".to_string(), - password: "secret".to_string(), - ..WebDavSyncSettings::default() - }); + let existing = AppSettings { + webdav_sync: Some(WebDavSyncSettings { + base_url: "https://dav.example.com".to_string(), + username: "alice".to_string(), + password: "secret".to_string(), + ..WebDavSyncSettings::default() + }), + ..AppSettings::default() + }; let incoming = AppSettings::default(); let merged = merge_settings_for_save(incoming, &existing); @@ -107,21 +109,25 @@ mod tests { #[test] fn save_settings_should_keep_incoming_webdav_when_present() { - let mut existing = AppSettings::default(); - existing.webdav_sync = Some(WebDavSyncSettings { - base_url: "https://dav.old.example.com".to_string(), - username: "old".to_string(), - password: "old-pass".to_string(), - ..WebDavSyncSettings::default() - }); + let existing = AppSettings { + webdav_sync: Some(WebDavSyncSettings { + base_url: "https://dav.old.example.com".to_string(), + username: "old".to_string(), + password: "old-pass".to_string(), + ..WebDavSyncSettings::default() + }), + ..AppSettings::default() + }; - let mut incoming = AppSettings::default(); - incoming.webdav_sync = Some(WebDavSyncSettings { - base_url: "https://dav.new.example.com".to_string(), - username: "new".to_string(), - password: "new-pass".to_string(), - ..WebDavSyncSettings::default() - }); + let incoming = AppSettings { + webdav_sync: Some(WebDavSyncSettings { + base_url: "https://dav.new.example.com".to_string(), + username: "new".to_string(), + password: "new-pass".to_string(), + ..WebDavSyncSettings::default() + }), + ..AppSettings::default() + }; let merged = merge_settings_for_save(incoming, &existing); @@ -137,22 +143,26 @@ mod tests { /// must NOT overwrite the existing one. #[test] fn save_settings_should_preserve_password_when_incoming_has_empty_password() { - let mut existing = AppSettings::default(); - existing.webdav_sync = Some(WebDavSyncSettings { - base_url: "https://dav.example.com".to_string(), - username: "alice".to_string(), - password: "secret".to_string(), - ..WebDavSyncSettings::default() - }); + let existing = AppSettings { + webdav_sync: Some(WebDavSyncSettings { + base_url: "https://dav.example.com".to_string(), + username: "alice".to_string(), + password: "secret".to_string(), + ..WebDavSyncSettings::default() + }), + ..AppSettings::default() + }; // Simulate frontend sending settings with cleared password - let mut incoming = AppSettings::default(); - incoming.webdav_sync = Some(WebDavSyncSettings { - base_url: "https://dav.example.com".to_string(), - username: "alice".to_string(), - password: "".to_string(), - ..WebDavSyncSettings::default() - }); + let incoming = AppSettings { + webdav_sync: Some(WebDavSyncSettings { + base_url: "https://dav.example.com".to_string(), + username: "alice".to_string(), + password: "".to_string(), + ..WebDavSyncSettings::default() + }), + ..AppSettings::default() + }; let merged = merge_settings_for_save(incoming, &existing); @@ -167,21 +177,25 @@ mod tests { /// work without panicking and keep the empty state. #[test] fn save_settings_should_handle_both_empty_passwords() { - let mut existing = AppSettings::default(); - existing.webdav_sync = Some(WebDavSyncSettings { - base_url: "https://dav.example.com".to_string(), - username: "alice".to_string(), - password: "".to_string(), - ..WebDavSyncSettings::default() - }); + let existing = AppSettings { + webdav_sync: Some(WebDavSyncSettings { + base_url: "https://dav.example.com".to_string(), + username: "alice".to_string(), + password: "".to_string(), + ..WebDavSyncSettings::default() + }), + ..AppSettings::default() + }; - let mut incoming = AppSettings::default(); - incoming.webdav_sync = Some(WebDavSyncSettings { - base_url: "https://dav.example.com".to_string(), - username: "alice".to_string(), - password: "".to_string(), - ..WebDavSyncSettings::default() - }); + let incoming = AppSettings { + webdav_sync: Some(WebDavSyncSettings { + base_url: "https://dav.example.com".to_string(), + username: "alice".to_string(), + password: "".to_string(), + ..WebDavSyncSettings::default() + }), + ..AppSettings::default() + }; let merged = merge_settings_for_save(incoming, &existing); diff --git a/src-tauri/src/config.rs b/src-tauri/src/config.rs index 0ad7a0d4b..085ca7724 100644 --- a/src-tauri/src/config.rs +++ b/src-tauri/src/config.rs @@ -342,7 +342,7 @@ mod tests { let cases = vec![ serde_json::json!("hello"), serde_json::json!(42), - serde_json::json!(3.14), + serde_json::json!(3.5), serde_json::json!(true), serde_json::json!(null), ]; diff --git a/src-tauri/src/database/backup.rs b/src-tauri/src/database/backup.rs index 9438615ba..776631b92 100644 --- a/src-tauri/src/database/backup.rs +++ b/src-tauri/src/database/backup.rs @@ -791,8 +791,10 @@ mod tests { std::fs::create_dir_all(&test_home).expect("create test home"); std::env::set_var("CC_SWITCH_TEST_HOME", &test_home); - let mut settings = AppSettings::default(); - settings.backup_interval_hours = Some(0); + let settings = AppSettings { + backup_interval_hours: Some(0), + ..AppSettings::default() + }; update_settings(settings).expect("disable auto backup"); let db = Database::memory()?; diff --git a/src-tauri/src/provider.rs b/src-tauri/src/provider.rs index 1a589a6d1..589449fa9 100644 --- a/src-tauri/src/provider.rs +++ b/src-tauri/src/provider.rs @@ -760,8 +760,10 @@ mod tests { #[test] fn provider_meta_serializes_pricing_model_source() { - let mut meta = ProviderMeta::default(); - meta.pricing_model_source = Some("response".to_string()); + let meta = ProviderMeta { + pricing_model_source: Some("response".to_string()), + ..ProviderMeta::default() + }; let value = serde_json::to_value(&meta).expect("serialize ProviderMeta"); diff --git a/src-tauri/src/proxy/forwarder.rs b/src-tauri/src/proxy/forwarder.rs index 861c985a0..414053f9e 100644 --- a/src-tauri/src/proxy/forwarder.rs +++ b/src-tauri/src/proxy/forwarder.rs @@ -764,6 +764,7 @@ impl RequestForwarder { } /// 转发单个请求(使用适配器) + #[allow(clippy::too_many_arguments)] async fn forward( &self, app_type: &AppType, diff --git a/src-tauri/src/proxy/response_processor.rs b/src-tauri/src/proxy/response_processor.rs index 0b9f19f82..52c40658a 100644 --- a/src-tauri/src/proxy/response_processor.rs +++ b/src-tauri/src/proxy/response_processor.rs @@ -894,9 +894,11 @@ mod tests { db.set_pricing_model_source(app_type, "response").await?; seed_pricing(&db)?; - let mut meta = ProviderMeta::default(); - meta.cost_multiplier = Some("2".to_string()); - meta.pricing_model_source = Some("request".to_string()); + let meta = ProviderMeta { + cost_multiplier: Some("2".to_string()), + pricing_model_source: Some("request".to_string()), + ..ProviderMeta::default() + }; insert_provider(&db, "provider-1", app_type, meta)?; let state = build_state(db.clone());