Files
felhom-controller/controller/internal/backup/r660_update_held_test.go
T

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")
}
}