Frontend+API: Namen ändern (POST /user/rename)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-06-03 11:47:44 +02:00
parent 7ffc35808a
commit 844bbb44e7
5 changed files with 98 additions and 0 deletions
+46
View File
@@ -221,6 +221,52 @@ func TestVoteRequiresAuthAndValidMode(t *testing.T) {
}
}
func TestRenameUser(t *testing.T) {
srv := newTestServer(t)
alice := registerAndLogin(t, srv, "alice")
registerAndLogin(t, srv, "bob")
// Zu kurz -> 400.
resp := postForm(t, alice, srv.URL+"/user/rename", url.Values{"user": {"ab"}})
resp.Body.Close()
if resp.StatusCode != http.StatusBadRequest {
t.Fatalf("zu kurz: erwartet 400, bekam %d", resp.StatusCode)
}
// Bereits vergeben -> 409.
resp = postForm(t, alice, srv.URL+"/user/rename", url.Values{"user": {"bob"}})
resp.Body.Close()
if resp.StatusCode != http.StatusConflict {
t.Fatalf("vergeben: erwartet 409, bekam %d", resp.StatusCode)
}
// Gültig -> 200 + neuer Name.
resp = postForm(t, alice, srv.URL+"/user/rename", url.Values{"user": {"alice2"}})
defer resp.Body.Close()
if resp.StatusCode != http.StatusOK {
t.Fatalf("rename: erwartet 200, bekam %d", resp.StatusCode)
}
var out struct {
Username string `json:"username"`
}
json.NewDecoder(resp.Body).Decode(&out)
if out.Username != "alice2" {
t.Fatalf("erwarteter Name alice2, bekam %q", out.Username)
}
// Profil unter dem neuen Namen erreichbar, alter Name weg.
r2, _ := http.Get(srv.URL + "/u/alice2/info")
r2.Body.Close()
if r2.StatusCode != http.StatusOK {
t.Fatalf("/u/alice2/info: erwartet 200, bekam %d", r2.StatusCode)
}
r3, _ := http.Get(srv.URL + "/u/alice/info")
r3.Body.Close()
if r3.StatusCode != http.StatusNotFound {
t.Fatalf("/u/alice/info: erwartet 404, bekam %d", r3.StatusCode)
}
}
func TestDeleteUser(t *testing.T) {
srv := newTestServer(t)
alice := registerAndLogin(t, srv, "alice")