v0.314.0: a restore puts the setup gate back as it was (R-1057); a test build moves with the floor (R-1053); Prowlarr links itself (R-1058); the box claims Plex by address (R-1060)
gates / gates (push) Successful in 47s

MinAgent 0.155.0 (unchanged). Tests red-proved by mutation (A: 10, B: 7, C: 1, C2: 2).

Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
This commit is contained in:
admin committed 2026-10-15 14:34:33 +02:00
1 parent e209a8d724
commit 17863fe8bc
22 files changed
+762 -21

No files matched your search

@@ -0,0 +1,38 @@
package stacks
import (
"os"
"path/filepath"
"testing"
)
// R-1058 (v0.314.0) — Prowlarr's own start runs the media wiring, so installed AFTER Sonarr/Radarr it is linked with
// no button. Through the PRODUCTION compose call (composeExecCustomEnv) with the docker stand-in on PATH (R-650).
// COMPANION RED-PROOF: empty linkOnlyApps → „prowlarr" is missing from the calls and this fails.
func TestR1058_ProwlarrUpRunsTheWiring(t *testing.T) {
m := gateManager(t, "display_name: x\n")
var calls []string
m.SetOnMediaUp(func(name string) { calls = append(calls, name) })
mk := func(name, yml string) string {
d := filepath.Join(m.cfg.Paths.StacksDir, name)
must(t, os.MkdirAll(d, 0o755))
must(t, os.WriteFile(filepath.Join(d, "docker-compose.yml"), []byte("services: {}\n"), 0o644))
must(t, os.WriteFile(filepath.Join(d, ".felhom.yml"), []byte(yml), 0o644))
return d
}
prowlarr := mk("prowlarr", "display_name: Prowlarr\nsetup_gate: true\n")
sonarr := mk("sonarr", "display_name: Sonarr\nmedia_library:\n kinds: [tv]\n")
plain := mk("vaultwarden", "display_name: Vaultwarden\n")
for _, d := range []string{prowlarr, sonarr, plain} {
if _, err := m.composeExecCustomEnv(d, nil, "up", "-d"); err != nil {
t.Fatal(err)
}
}
if _, err := m.composeExecCustomEnv(prowlarr, nil, "ps"); err != nil {
t.Fatal(err)
}
want := []string{"prowlarr", "sonarr"}
if len(calls) != len(want) || calls[0] != want[0] || calls[1] != want[1] {
t.Fatalf("wiring runs = %v, want %v (Prowlarr's up, Sonarr's up; never another app, never a non-up command)", calls, want)
}
}