web-ui: добавлена страница группового удаления загрузок
- выбор → поимённое подтверждение → отчёт: пачка до 20 загрузок, гарды входа на обеих границах, потолок времени и остановка после трёх подряд отказов внешнего сервиса - допуск полного удаления сведён в единую точку store.State.CanDelete() — worker, страница загрузки и Telegram больше не держат своих перечней
This commit is contained in:
@@ -683,3 +683,22 @@ func TestIsObservable(t *testing.T) {
|
||||
t.Error("failed должно быть терминальным и при этом наблюдаемым")
|
||||
}
|
||||
}
|
||||
|
||||
// TestCanDelete: допуск полного удаления — единый дом перечня состояний, на
|
||||
// который смотрят и ядро, и все транспорты. Перебираем ВСЕ состояния: новое
|
||||
// состояние, попавшее в перечень молча, тест покажет.
|
||||
func TestCanDelete(t *testing.T) {
|
||||
deletable := []State{StateDone, StateOrphaned, StateTargetMissing}
|
||||
|
||||
for _, s := range allStates {
|
||||
want := slices.Contains(deletable, s)
|
||||
if got := s.CanDelete(); got != want {
|
||||
t.Errorf("%s: CanDelete=%v, want %v", s, got, want)
|
||||
}
|
||||
}
|
||||
// deleted терминально и удалению не подлежит — иначе повторная отправка
|
||||
// формы группового удаления сносила бы уже снесённое второй раз.
|
||||
if StateDeleted.CanDelete() {
|
||||
t.Error("deleted не должно допускать удаление")
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user