Frontend+API: Namen ändern (POST /user/rename)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -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")
|
||||
|
||||
Reference in New Issue
Block a user