refactor: E-Mail-Vorlagen als Liste + eigene Bearbeiten-Seite statt Formular-Stapel
Auf Nutzerfeedback: die erste Version zeigte alle bekannten Vorlagen als
gestapelte Formulare auf einer Seite. Jetzt wie Werkzeugkatalog/
Nutzerverwaltung: eine Liste (GET .../email-vorlagen) mit Klick auf eine
eigene Bearbeiten-Seite je Typ (GET/POST .../email-vorlagen/{typ}) -
skaliert sauber, wenn mit der Zeit weitere Benachrichtigungstypen
dazukommen, statt eine immer länger werdende Formular-Stapel-Seite.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -13,22 +13,30 @@ func TestAdminKannEigeneEmailVorlageSpeichernUndZuruecksetzen(t *testing.T) {
|
||||
s := newServer(t, fs)
|
||||
cookie := seedAccountWithRole(t, fs, "Test-Mandant", "admin@example.com", "admin")
|
||||
|
||||
getResp := getWithCookie(t, s, cookie, "/verwaltung/email-vorlagen")
|
||||
listResp := getWithCookie(t, s, cookie, "/verwaltung/email-vorlagen")
|
||||
if listResp.Code != http.StatusOK {
|
||||
t.Fatalf("Liste-Status = %d, want 200", listResp.Code)
|
||||
}
|
||||
if !strings.Contains(listResp.Body.String(), "/verwaltung/email-vorlagen/passwort_zuruecksetzen") {
|
||||
t.Fatalf("erwartet Link zur Bearbeiten-Seite, body: %s", listResp.Body.String())
|
||||
}
|
||||
|
||||
getResp := getWithCookie(t, s, cookie, "/verwaltung/email-vorlagen/passwort_zuruecksetzen")
|
||||
if getResp.Code != http.StatusOK {
|
||||
t.Fatalf("GET status = %d, want 200", getResp.Code)
|
||||
t.Fatalf("GET Bearbeiten-Seite status = %d, want 200", getResp.Code)
|
||||
}
|
||||
if !strings.Contains(getResp.Body.String(), "Plattform-Standard, nicht angepasst") {
|
||||
t.Fatalf("erwartet Hinweis auf geerbten Plattform-Standard, body: %s", getResp.Body.String())
|
||||
}
|
||||
|
||||
saveResp := postForm(t, s, cookie, "/verwaltung/email-vorlagen", url.Values{
|
||||
"typ": {"passwort_zuruecksetzen"}, "betreff": {"Mein eigener Betreff"}, "text": {"Mein eigener Text {{link}}"},
|
||||
saveResp := postForm(t, s, cookie, "/verwaltung/email-vorlagen/passwort_zuruecksetzen", url.Values{
|
||||
"betreff": {"Mein eigener Betreff"}, "text": {"Mein eigener Text {{link}}"},
|
||||
})
|
||||
if saveResp.Code != http.StatusSeeOther {
|
||||
t.Fatalf("save status = %d, want 303, body: %s", saveResp.Code, saveResp.Body.String())
|
||||
}
|
||||
|
||||
afterResp := getWithCookie(t, s, cookie, "/verwaltung/email-vorlagen")
|
||||
afterResp := getWithCookie(t, s, cookie, "/verwaltung/email-vorlagen/passwort_zuruecksetzen")
|
||||
body := afterResp.Body.String()
|
||||
if !strings.Contains(body, "Mein eigener Betreff") {
|
||||
t.Fatalf("gespeicherter Betreff fehlt, body: %s", body)
|
||||
@@ -37,11 +45,11 @@ func TestAdminKannEigeneEmailVorlageSpeichernUndZuruecksetzen(t *testing.T) {
|
||||
t.Fatalf("erwartet Hinweis auf eigene Vorlage, body: %s", body)
|
||||
}
|
||||
|
||||
resetResp := postForm(t, s, cookie, "/verwaltung/email-vorlagen/zuruecksetzen", url.Values{"typ": {"passwort_zuruecksetzen"}})
|
||||
resetResp := postForm(t, s, cookie, "/verwaltung/email-vorlagen/passwort_zuruecksetzen/zuruecksetzen", url.Values{})
|
||||
if resetResp.Code != http.StatusSeeOther {
|
||||
t.Fatalf("reset status = %d, want 303", resetResp.Code)
|
||||
}
|
||||
finalResp := getWithCookie(t, s, cookie, "/verwaltung/email-vorlagen")
|
||||
finalResp := getWithCookie(t, s, cookie, "/verwaltung/email-vorlagen/passwort_zuruecksetzen")
|
||||
if strings.Contains(finalResp.Body.String(), "Mein eigener Betreff") {
|
||||
t.Fatal("nach Zurücksetzen ist die eigene Vorlage immer noch aktiv")
|
||||
}
|
||||
@@ -52,14 +60,14 @@ func TestBetreiberKannPlattformStandardBearbeiten(t *testing.T) {
|
||||
s := newServer(t, fs)
|
||||
cookie := seedAccountWithRole(t, fs, "Betreiber-Firma", "betreiber@example.com", "betreiber")
|
||||
|
||||
saveResp := postForm(t, s, cookie, "/betreiber/email-vorlagen", url.Values{
|
||||
"typ": {"passwort_zuruecksetzen"}, "betreff": {"Neuer Plattform-Betreff"}, "text": {"Neuer Plattform-Text {{link}}"},
|
||||
saveResp := postForm(t, s, cookie, "/betreiber/email-vorlagen/passwort_zuruecksetzen", url.Values{
|
||||
"betreff": {"Neuer Plattform-Betreff"}, "text": {"Neuer Plattform-Text {{link}}"},
|
||||
})
|
||||
if saveResp.Code != http.StatusSeeOther {
|
||||
t.Fatalf("save status = %d, want 303, body: %s", saveResp.Code, saveResp.Body.String())
|
||||
}
|
||||
|
||||
getResp := getWithCookie(t, s, cookie, "/betreiber/email-vorlagen")
|
||||
getResp := getWithCookie(t, s, cookie, "/betreiber/email-vorlagen/passwort_zuruecksetzen")
|
||||
if !strings.Contains(getResp.Body.String(), "Neuer Plattform-Betreff") {
|
||||
t.Fatalf("neuer Plattform-Standard fehlt, body: %s", getResp.Body.String())
|
||||
}
|
||||
@@ -81,8 +89,8 @@ func TestPasswortVergessenNutztMandantenspezifischeVorlage(t *testing.T) {
|
||||
s, fm := newServerWithMailer(t, fs)
|
||||
cookie := seedAccountWithRole(t, fs, "Vorlage-Firma", "vorlage-admin@example.com", "admin")
|
||||
|
||||
if resp := postForm(t, s, cookie, "/verwaltung/email-vorlagen", url.Values{
|
||||
"typ": {"passwort_zuruecksetzen"}, "betreff": {"Firmenspezifischer Betreff"}, "text": {"Hallo! Link: {{link}} Ende."},
|
||||
if resp := postForm(t, s, cookie, "/verwaltung/email-vorlagen/passwort_zuruecksetzen", url.Values{
|
||||
"betreff": {"Firmenspezifischer Betreff"}, "text": {"Hallo! Link: {{link}} Ende."},
|
||||
}); resp.Code != http.StatusSeeOther {
|
||||
t.Fatalf("save status = %d, want 303", resp.Code)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user