From b81b7f7a0e9de1af191bbb91542902c72d0e906c Mon Sep 17 00:00:00 2001 From: Diocrafts Date: Wed, 4 Mar 2026 23:29:20 +0100 Subject: [PATCH] fix: eliminate all 420 compiler warnings - Add allow(async_fn_in_trait) in lib.rs for async trait methods - Add integration_tests feature to Cargo.toml for cfg gating - Gate trash_service_test module with cfg(feature = integration_tests) - Remove unused MockFileWritePort from idor_protection_test.rs --- Cargo.toml | 1 + .../services/idor_protection_test.rs | 116 +----------------- src/application/services/mod.rs | 2 +- src/lib.rs | 2 + 4 files changed, 5 insertions(+), 116 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 95c090ee..0cb22bbf 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -57,6 +57,7 @@ socket2 = { version = "0.6.2", features = ["all"] } [features] default = [] test_utils = ["mockall"] +integration_tests = [] [profile.release] lto = "fat" diff --git a/src/application/services/idor_protection_test.rs b/src/application/services/idor_protection_test.rs index 2db540a1..b2458b5a 100644 --- a/src/application/services/idor_protection_test.rs +++ b/src/application/services/idor_protection_test.rs @@ -6,12 +6,11 @@ use bytes::Bytes; use futures::Stream; use std::collections::HashMap; -use std::path::{Path, PathBuf}; use std::pin::Pin; use std::sync::Mutex; use crate::application::ports::storage_ports::{ - FileReadPort, FileWritePort, + FileReadPort, }; use crate::common::errors::DomainError; use crate::domain::entities::file::File; @@ -131,119 +130,6 @@ impl FileReadPort for MockFileReadPort { } } -/// Minimal mock write port — only `move_file` and `rename_file` need real logic. -struct MockFileWritePort { - files: Mutex>, -} - -impl MockFileWritePort { - fn new() -> Self { - Self { - files: Mutex::new(HashMap::new()), - } - } - - fn insert(&self, id: &str, name: &str) { - let file = File::new( - id.to_string(), - name.to_string(), - StoragePath::from_string(&format!("/{}", name)), - 42, - "text/plain".to_string(), - None, - ) - .unwrap(); - self.files.lock().unwrap().insert(id.to_string(), file); - } -} - -impl FileWritePort for MockFileWritePort { - async fn save_file_from_temp( - &self, - _name: String, - _folder_id: Option, - _content_type: String, - _temp_path: &Path, - _size: u64, - _pre_computed_hash: Option, - ) -> Result { - unimplemented!() - } - - async fn move_file( - &self, - file_id: &str, - _target_folder_id: Option, - ) -> Result { - let files = self.files.lock().unwrap(); - files - .get(file_id) - .cloned() - .ok_or_else(|| DomainError::not_found("File", file_id.to_string())) - } - - async fn rename_file( - &self, - file_id: &str, - _new_name: &str, - ) -> Result { - let files = self.files.lock().unwrap(); - files - .get(file_id) - .cloned() - .ok_or_else(|| DomainError::not_found("File", file_id.to_string())) - } - - async fn delete_file(&self, _id: &str) -> Result<(), DomainError> { - Ok(()) - } - - async fn update_file_content_from_temp( - &self, - _file_id: &str, - _temp_path: &Path, - _size: u64, - _content_type: Option, - _pre_computed_hash: Option, - ) -> Result<(), DomainError> { - Ok(()) - } - - async fn register_file_deferred( - &self, - _name: String, - _folder_id: Option, - _content_type: String, - _size: u64, - ) -> Result<(File, PathBuf), DomainError> { - unimplemented!() - } - - async fn copy_file( - &self, - _file_id: &str, - _target_folder_id: Option, - ) -> Result { - unimplemented!() - } - - async fn move_to_trash(&self, _file_id: &str) -> Result<(), DomainError> { - Ok(()) - } - - async fn restore_from_trash( - &self, - _file_id: &str, - _original_path: &str, - ) -> Result<(), DomainError> { - Ok(()) - } - - async fn delete_file_permanently(&self, _file_id: &str) -> Result<(), DomainError> { - Ok(()) - } -} - // ═══════════════════════════════════════════════════════════════════════════ // Tests — FileReadPort::get_file_for_owner (Repository layer, Solution C) // ═══════════════════════════════════════════════════════════════════════════ diff --git a/src/application/services/mod.rs b/src/application/services/mod.rs index 82fca23e..1c5dd159 100644 --- a/src/application/services/mod.rs +++ b/src/application/services/mod.rs @@ -20,7 +20,7 @@ pub mod trash_service; pub mod wopi_lock_service; pub mod wopi_token_service; -#[cfg(test)] +#[cfg(all(test, feature = "integration_tests"))] mod trash_service_test; #[cfg(test)] mod idor_protection_test; diff --git a/src/lib.rs b/src/lib.rs index 27e1b69d..49996529 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,3 +1,5 @@ +#![allow(async_fn_in_trait)] + // Export the main project modules pub mod application; pub mod common;