17863fe8bc
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
39 lines
1.6 KiB
Go
39 lines
1.6 KiB
Go
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)
|
|
}
|
|
}
|