6be6c53e29
gates / gates (push) Successful in 25s
Red-proofs RP31-RP38. MinAgent 0.131.0 (unchanged). Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
24 lines
979 B
Go
24 lines
979 B
Go
package stacks
|
|
|
|
import "testing"
|
|
|
|
// R-721 (v0.283.0): the nightly update leg never presses an app the household stopped — an update brings the
|
|
// app up with its new images, which would undo the Stop. Measured from source 2026-09-30: legCandidate had no
|
|
// desired-state check at all.
|
|
// COMPANION RED-PROOF: remove the DesiredStateStopped check in legCandidate → the step is pressed.
|
|
func TestR721_UpdateLegLeavesAStoppedAppAlone(t *testing.T) {
|
|
m, dir, _, ups, _ := legManager(t)
|
|
writeLadder(t, m, ladderLine(ladderA, ladderB), ladderLine(ladderB, ladderC))
|
|
legOpts(m, nil)
|
|
if err := m.SetDesiredState("nextcloud", DesiredStateStopped); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
s := mustLeg(t, m)
|
|
if len(*ups) != 0 || pinOf(t, dir) != ladderA {
|
|
t.Fatalf("the leg updated an app the household stopped (ups=%v)", *ups)
|
|
}
|
|
if st := legStepFor(s, "nextcloud"); st.Reason != LegSkipStoppedByHousehold {
|
|
t.Fatalf("skip reason %+v, want %q", st, LegSkipStoppedByHousehold)
|
|
}
|
|
}
|