fix(photos): копия фото не наследует отредактированную версию

Clone переносил все привязки photo_objects, включая роли edit*, хотя
правка принадлежит фото, чьи правки её породили. Теперь копия делит
только обычные варианты и показывается в исходном виде.

- EditRoles() и IsEditRole() в edit_render.go — единый список ролей;
- фильтр edit-ролей в Store.Clone и SQLiteStore.Clone;
- миграции 000016 (Postgres) и 000008 (SQLite) убирают привязки у
  копий, созданных до фикса;
- контрактная проверка копирования, сервисные и e2e-тесты.
This commit is contained in:
iu
2026-10-21 21:01:33 +03:00
parent 759e78ff79
commit 8dd8cb6f0c
12 changed files with 344 additions and 6 deletions
+17
View File
@@ -34,6 +34,23 @@ func TestParseEditParamsClampsValues(t *testing.T) {
}
}
func TestEditRolesCoverTheEditedVersion(t *testing.T) {
roles := EditRoles()
if len(roles) != 4 {
t.Fatalf("edit roles = %v, want four", roles)
}
for _, role := range roles {
if !IsEditRole(role) {
t.Fatalf("role %q must be an edit role", role)
}
}
for _, role := range []string{RoleOriginal, RoleThumb, RoleMedium, RolePreview, RolePlayback} {
if IsEditRole(role) {
t.Fatalf("role %q must not be an edit role", role)
}
}
}
func TestEditParamsIsEmpty(t *testing.T) {
var zero EditParams
if !zero.IsEmpty() {