b53721db34
The state stays the containers' (probeSaysUnhealthy skips a not-checked record), so R-630 holds. Red-proof RP-D1 — felhom.eu audits/visitors-2026-10-01/D. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
42 lines
1.7 KiB
Go
42 lines
1.7 KiB
Go
package web
|
|
|
|
import (
|
|
"html"
|
|
"strings"
|
|
"testing"
|
|
|
|
"gitea.dooplex.hu/admin/felhom-controller/internal/stacks"
|
|
)
|
|
|
|
// R-772: the app page SAYS when the declared health check could not run, in the reader's language, and says nothing
|
|
// when the check ran (or when there is no record). Both branches rendered — a line in a template that no test renders
|
|
// is a seam built and never wired.
|
|
func TestR772_AppPageSaysTheCheckDidNotRun(t *testing.T) {
|
|
s := i18nTestServer(t)
|
|
page := func(name string, hp *stacks.HealthProbeResult) i18nCase {
|
|
return i18nCase{name, "app_info", func() map[string]interface{} {
|
|
d := i18nLayoutData("stacks", "Karakeep")
|
|
st := i18nStack("karakeep", "Karakeep", stacks.StateDegraded, true)
|
|
st.HealthProbe = hp
|
|
d["Stack"], d["Meta"], d["AppInfo"] = &st, st.Meta, st.Meta.AppInfo
|
|
return d
|
|
}}
|
|
}
|
|
notRun := page("r772_not_checked", &stacks.HealthProbeResult{NotChecked: true})
|
|
ran := page("r772_checked", &stacks.HealthProbeResult{Healthy: true})
|
|
none := page("r772_no_record", nil)
|
|
enLine, huLine := "No health check ran: no matching container.", stacks.MsgHealthNoProbeContainer
|
|
en := html.UnescapeString(renderI18nCase(t, s, "en", notRun))
|
|
hu := html.UnescapeString(renderI18nCase(t, s, "hu", notRun))
|
|
if !strings.Contains(en, enLine) || strings.Contains(en, huLine) || !strings.Contains(hu, huLine) {
|
|
t.Fatalf("the not-checked line must reach the page in the reader's language")
|
|
}
|
|
for _, c := range []i18nCase{ran, none} {
|
|
for _, lang := range []string{"en", "hu"} {
|
|
if out := renderI18nCase(t, s, lang, c); strings.Contains(out, "data-health-not-checked") {
|
|
t.Fatalf("%s/%s: the line must not show when the check ran or there is no record", c.name, lang)
|
|
}
|
|
}
|
|
}
|
|
}
|