v0.270.0: no update for a current app (R-679); an interrupted install is reported (R-681); a restore brings back the pinned version's health check (R-669); R-674
gates / gates (push) Successful in 24s
gates / gates (push) Successful in 24s
Five red-proofs. 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
This commit is contained in:
@@ -0,0 +1,30 @@
|
||||
package stacks
|
||||
|
||||
import (
|
||||
"path/filepath"
|
||||
"strings"
|
||||
"testing"
|
||||
)
|
||||
|
||||
// R-674 (v0.270.0): a pin equal to the ladder's newest `to` is AT THE HEAD — the log must not call it
|
||||
// "older than the ladder".
|
||||
//
|
||||
// COMPANION RED-PROOF (REPORT.md): drop the head branch in nextLadderStep → "the head was called older
|
||||
// than the ladder".
|
||||
func TestR674_HeadIsNotCalledOlder(t *testing.T) {
|
||||
dir := t.TempDir()
|
||||
mustWrite(t, filepath.Join(dir, ".felhom.yml"), "display_name: X\nupdate_ladder:\n"+ladderLine(ladderA, ladderB)+ladderLine(ladderB, ladderC))
|
||||
mustWrite(t, filepath.Join(dir, "docker-compose.yml"), "services:\n web:\n image: "+ladderC+"\n")
|
||||
step, err := nextLadderStep(dir, map[string]string{"web": ladderC})
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if strings.Contains(step.Why, "older than the ladder") || !strings.Contains(step.Why, "AT THE HEAD") {
|
||||
t.Fatalf("the head was called older than the ladder: %q", step.Why)
|
||||
}
|
||||
// Control: a pin the ladder does not know is still said so.
|
||||
step, _ = nextLadderStep(dir, map[string]string{"web": "nextcloud:30.0.0-apache"})
|
||||
if !strings.Contains(step.Why, "matches no update_ladder entry") {
|
||||
t.Fatalf("the unknown-pin sentence changed: %q", step.Why)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user