refactor(*): 平台架构 - 拆分后端领域模块与画布前端组件并补充测试

This commit is contained in:
ddcat666
2026-09-30 10:01:39 +08:00
parent e0a2697c60
commit 7f5d87ef1a
186 changed files with 33727 additions and 29905 deletions

View File

@@ -43,27 +43,8 @@ func TestPurgeAssetsBatchSharedResourcesAndHistory(t *testing.T) {
}
}
// Active task, canvas and history references must block deletion.
if err := svc.PurgeUserAssets("user-1", []string{"first", "second"}); err == nil {
t.Fatal("expected referenced assets to remain protected")
}
assertCount(&model.Asset{}, 3)
assertCount(&model.Resource{}, 4)
assertCount(&model.ResourceDeletionJob{}, 0)
assertCount(&model.CanvasSnapshotResource{}, 1)
assertCount(&model.AssetVersion{}, 2)
assertCount(&model.AssetRepresentation{}, 2)
// Once references are released, a late database error must still roll back.
if err := db.Model(&model.Task{}).Where("id = ?", "batch-task").Update("input_json", `{}`).Error; err != nil {
t.Fatal(err)
}
if err := db.Model(&model.CanvasProject{}).Where("id = ?", "batch-canvas").Update("payload_json", `{}`).Error; err != nil {
t.Fatal(err)
}
if err := db.Delete(&model.CanvasSnapshotResource{}, "snapshot_id = ?", "batch-snapshot").Error; err != nil {
t.Fatal(err)
}
// 彻底删除不受任务、画布与画布历史引用拦截(产品约定);
// 但事务后段失败时,素材、版本、表现、历史索引与 Outbox 必须整批回滚。
if err := db.Exec("CREATE TRIGGER fail_batch_resource_delete BEFORE DELETE ON resources BEGIN SELECT RAISE(ABORT, 'forced failure'); END;").Error; err != nil {
t.Fatal(err)
}
@@ -73,7 +54,7 @@ func TestPurgeAssetsBatchSharedResourcesAndHistory(t *testing.T) {
assertCount(&model.Asset{}, 3)
assertCount(&model.Resource{}, 4)
assertCount(&model.ResourceDeletionJob{}, 0)
assertCount(&model.CanvasSnapshotResource{}, 0)
assertCount(&model.CanvasSnapshotResource{}, 1)
assertCount(&model.AssetVersion{}, 2)
assertCount(&model.AssetRepresentation{}, 2)
if err := db.Exec("DROP TRIGGER fail_batch_resource_delete").Error; err != nil {