3d6ba2852f
gates / gates (push) Successful in 50s
22 Go-literal messages (escrow handler, share password page, export upload, network-storage uid/remove/attach failures) are bundle keys with te-form Hungarian and English; a detached attach failure renders in the reader's language. The NAS refusal says „Válassz". Setup wizard, recovery-info.txt (R-554) and the SMART/fill-watch wire texts are left. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
42 lines
2.0 KiB
Go
42 lines
2.0 KiB
Go
package settings
|
|
|
|
import (
|
|
"strings"
|
|
"testing"
|
|
)
|
|
|
|
// ── SCENARIO G (R-220) — AN EMPTY LIST MUST EXPLAIN ITSELF ──────────────────────────────────────
|
|
//
|
|
// The old refusal said "choose an attached drive from the list" while the list was empty — on a
|
|
// rebuilt box, for a reason the customer had no part in and could not see. Measured three times live.
|
|
// A refusal that names an action the customer cannot perform is the I3 breach the campaign recorded.
|
|
//
|
|
// RED-PROOF: restore the old sentence and this FAILS on the impossible-action assertion.
|
|
func TestRefuseAppNamespace_DoesNotNameAnImpossibleAction(t *testing.T) {
|
|
msg := refuseAppNamespaceUndeterminable
|
|
|
|
if strings.Contains(msg, "Válasszon a listából") {
|
|
t.Fatal("R-220's I3 breach RETURNED: the refusal tells the customer to choose from a list that may be empty")
|
|
}
|
|
// It must say WHY the list can be empty — the rebuild — so the state is explicable.
|
|
if !strings.Contains(msg, "újratelepítettük") && !strings.Contains(msg, "újra") {
|
|
t.Fatalf("the refusal must explain why the drive is unregistered; got %q", msg)
|
|
}
|
|
// And point somewhere a customer can actually go.
|
|
if !strings.Contains(msg, "Meghajtók") {
|
|
t.Fatalf("the refusal must name where re-attaching happens; got %q", msg)
|
|
}
|
|
// It must not promise an outcome it cannot know.
|
|
for _, forbidden := range []string{"biztosan", "garantál", "mindig sikerül"} {
|
|
if strings.Contains(msg, forbidden) {
|
|
t.Errorf("the refusal promises an outcome it cannot know (%q)", forbidden)
|
|
}
|
|
}
|
|
// The NAS refusal is a different situation and keeps its own wording — it points at a list that
|
|
// genuinely does have entries, so it is not the same defect. (R-516, 2026-10-06 night: the same
|
|
// sentence in the product's te-form — „Válassz", not „Válasszon".)
|
|
if !strings.Contains(refuseAppNamespaceNetwork, "Válassz csatlakoztatott meghajtót") {
|
|
t.Fatal("the NAS refusal was changed; it is a different situation and was not part of R-220")
|
|
}
|
|
}
|