feat(assets): 素材回收站与画布历史 - 合并 PR #370 并修复删除一致性

This commit is contained in:
ddCat committed 2026-09-01 18:50:30 +08:00
commit 39bdc54762
21 files changed
+1764 -340

No files matched your search

@@ -136,3 +136,39 @@ func TestRuntimePolicySaveAndResetTakeEffectImmediately(t *testing.T) {
t.Fatalf("reset active task limit = %d, error = %v", effective.Task.ActiveTaskLimit, err)
}
}
func TestRuntimePolicyBackfillsRecycleBinRetentionForLegacyJSON(t *testing.T) {
db, err := gorm.Open(sqlite.Open(":memory:"), &gorm.Config{})
if err != nil {
t.Fatal(err)
}
if err := db.AutoMigrate(&model.SystemSetting{}); err != nil {
t.Fatal(err)
}
legacy := defaultRuntimePolicy()
encoded, err := json.Marshal(legacy)
if err != nil {
t.Fatal(err)
}
var value map[string]any
if err := json.Unmarshal(encoded, &value); err != nil {
t.Fatal(err)
}
resource := value["resource"].(map[string]any)
delete(resource, "recycleBinRetentionDays")
encoded, err = json.Marshal(value)
if err != nil {
t.Fatal(err)
}
if err := db.Create(&model.SystemSetting{Key: runtimePolicySettingKey, ValueJSON: string(encoded), UpdatedBy: "admin"}).Error; err != nil {
t.Fatal(err)
}
policy, err := New(repository.New(db), t.TempDir()).RuntimePolicy()
if err != nil {
t.Fatal(err)
}
if policy.Resource.RecycleBinRetentionDays != 30 {
t.Fatalf("legacy recycle bin retention = %d, want 30", policy.Resource.RecycleBinRetentionDays)
}
}