package notify import ( "strings" "testing" ) // TestFormatCustomerEmail_OffboxEnlargeBlockedRawMessageSurvives locks in the deliberate non-change // (Task 3a-fix): offbox_enlarge_blocked has NO customerMessages entry, so FormatCustomerEmail falls // back to the controller's raw dynamic Hungarian message (templates.go:129) — the two-number text // (estimate + quota) reaches the customer intact. A static customerMessages entry would DISCARD it. func TestFormatCustomerEmail_OffboxEnlargeBlockedRawMessageSurvives(t *testing.T) { // exactly the shape the controller sends (NotifyOffboxEnlargeBlocked). raw := "A(z) immich teljes távoli mentése (~42.0 GB) túllépné a tárhelykeretet (20/50 GB). " + "A konfiguráció és az adatbázis továbbra is mentésre kerül; nagyobb kerethez vedd fel velünk a kapcsolatot." // guard: the map must NOT gain an entry for this type (the trap). if _, ok := customerMessages["offbox_enlarge_blocked"]; ok { t.Fatal("offbox_enlarge_blocked must have NO customerMessages entry (it would discard the dynamic numbers)") } subject, body := FormatCustomerEmail("c1", "offbox_enlarge_blocked", "warning", raw, "") for _, want := range []string{"~42.0 GB", "20/50 GB"} { if !strings.Contains(body, want) { t.Errorf("email body must carry the dynamic figure %q (raw message survived): %s", want, body) } } if !strings.Contains(subject, "túllépné a tárhelykeretet") { t.Errorf("subject must carry the raw message, got %q", subject) } }