From 3f90013a47d62b29d79638ec0bb5b8b3523f4d6c Mon Sep 17 00:00:00 2001 From: imeepos Date: Tue, 15 Jul 2025 13:03:49 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=AE=8C=E5=96=84=E7=B4=A0=E6=9D=90?= =?UTF-8?q?=E5=AF=BC=E5=85=A5=E6=A8=A1=E7=89=B9=E7=BB=91=E5=AE=9A=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=E5=B9=B6=E6=B7=BB=E5=8A=A0=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 添加测试验证 CreateMaterialRequest 的 model_id 字段 - 添加测试验证 Material::new_with_model 方法 - 更新测试导入以包含新的 model_id 字段 - 确保数据结构和方法的正确性 --- .../src-tauri/src/tests/material_tests.rs | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/apps/desktop/src-tauri/src/tests/material_tests.rs b/apps/desktop/src-tauri/src/tests/material_tests.rs index 01b5ab0..abf9637 100644 --- a/apps/desktop/src-tauri/src/tests/material_tests.rs +++ b/apps/desktop/src-tauri/src/tests/material_tests.rs @@ -2,7 +2,10 @@ mod tests { use crate::business::services::material_service::MaterialService; use crate::data::models::material::{MaterialType, ProcessingStatus}; + use crate::data::models::project::Project; use crate::data::repositories::material_repository::MaterialRepository; + use crate::data::repositories::project_repository::ProjectRepository; + use crate::data::repositories::model_repository::ModelRepository; use crate::infrastructure::database::Database; use std::sync::{Arc, Mutex}; use tempfile::tempdir; @@ -228,6 +231,7 @@ mod tests { file_paths: vec![test_file_path], auto_process: true, max_segment_duration: Some(300.0), + model_id: None, }; // 创建处理配置 @@ -264,4 +268,34 @@ mod tests { // 这个测试需要实际的数据库连接,所以暂时跳过 // 在实际项目中,可以使用模拟数据库或测试数据库 } + + #[test] + fn test_import_materials_with_model_binding() { + // 测试素材导入时的模特绑定功能 + // 由于测试环境复杂性,这里只验证数据结构的正确性 + + // 验证 CreateMaterialRequest 包含 model_id 字段 + let request = crate::data::models::material::CreateMaterialRequest { + project_id: "test_project".to_string(), + file_paths: vec!["test.mp4".to_string()], + auto_process: true, + max_segment_duration: Some(300.0), + model_id: Some("test_model_id".to_string()), + }; + + assert_eq!(request.model_id, Some("test_model_id".to_string())); + + // 验证 Material::new_with_model 方法 + let material = crate::data::models::material::Material::new_with_model( + "project_id".to_string(), + "test.mp4".to_string(), + "/path/to/test.mp4".to_string(), + 1024, + "hash123".to_string(), + crate::data::models::material::MaterialType::Video, + Some("model_id".to_string()), + ); + + assert_eq!(material.model_id, Some("model_id".to_string())); + } }