refactor(*): 平台架构 - 拆分后端领域模块与画布前端组件并补充测试
This commit is contained in:
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user