修复: gen_stream判重+重试分类+状态机最短路径+既有测试修复
This commit is contained in:
@@ -215,19 +215,30 @@ use rusqlite::OptionalExtension;
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use super::*;
|
||||
use crate::crud::project_repo::ProjectRepo;
|
||||
use crate::db::Database;
|
||||
use crate::models::{ProjectRecord, ProjectModuleRecord};
|
||||
use df_types::types::ProjectStatus;
|
||||
|
||||
/// 建库 + 建占位 project 满足 FK 约束 + 返回 repo(对标 project_service_repo::setup)。
|
||||
async fn setup() -> (Database, ProjectModuleRepo, String) {
|
||||
let db = Database::open_in_memory().await.expect("open_in_memory");
|
||||
let project_id = "proj-test".to_string();
|
||||
db.conn()
|
||||
.blocking_lock()
|
||||
.execute(
|
||||
"INSERT INTO projects (id, name, status, path, stack, created_at, updated_at) \
|
||||
VALUES (?1, ?2, 'active', '/tmp', 'rust', '0', '0')",
|
||||
params![project_id, "Test Project"],
|
||||
)
|
||||
// 用异步 repo API 建占位 project(勿在 async 上下文直接 blocking_lock,会触发
|
||||
// "Cannot block the current thread from within a runtime" panic,实证 2026-08-11)。
|
||||
ProjectRepo::new(&db)
|
||||
.insert(ProjectRecord {
|
||||
id: project_id.clone(),
|
||||
name: "Test Project".to_string(),
|
||||
description: String::new(),
|
||||
status: ProjectStatus::InProgress,
|
||||
idea_id: None,
|
||||
path: Some("/tmp".into()),
|
||||
stack: Some("rust".into()),
|
||||
created_at: "0".to_string(),
|
||||
updated_at: "0".to_string(),
|
||||
})
|
||||
.await
|
||||
.expect("insert placeholder project");
|
||||
let repo = ProjectModuleRepo::new(&db);
|
||||
(db, repo, project_id)
|
||||
|
||||
Reference in New Issue
Block a user