206b0357d1
gates / gates (push) Successful in 27s
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
30 lines
1011 B
Go
30 lines
1011 B
Go
package backup
|
|
|
|
import (
|
|
"io"
|
|
"log"
|
|
"testing"
|
|
|
|
"gitea.dooplex.hu/admin/felhom-controller/internal/settings"
|
|
)
|
|
|
|
// R-660 — UpdateHeldStacks names the apps an UPDATE hold stops, and never an R-379 restore hold (that
|
|
// hold has no event of its own; the app-down alarm stays its voice).
|
|
func TestR660_UpdateHeldStacksIsUpdateHoldsOnly(t *testing.T) {
|
|
sett := slice4Settings(t)
|
|
m := &Manager{logger: log.New(io.Discard, "", 0), settings: sett}
|
|
if got := m.UpdateHeldStacks(); len(got) != 0 {
|
|
t.Fatalf("no holds → %v", got)
|
|
}
|
|
_ = sett.SetRestoreHold(settings.RestoreHold{Stack: "nextcloud", At: "2026-09-23T21:42:39Z", Reason: settings.HoldReasonUpdateFailed})
|
|
_ = sett.SetRestoreHold(settings.RestoreHold{Stack: "docmost", At: "2026-08-22T14:00:00Z"})
|
|
got := m.UpdateHeldStacks()
|
|
if !got["nextcloud"] || got["docmost"] || len(got) != 1 {
|
|
t.Fatalf("got %v, want exactly {nextcloud}", got)
|
|
}
|
|
var nilM *Manager
|
|
if nilM.UpdateHeldStacks() != nil {
|
|
t.Fatal("a nil manager must answer nil")
|
|
}
|
|
}
|