user management added
Test and publish / verify (push) Successful in 7m51s

This commit is contained in:
2026-08-04 22:31:24 +03:30
parent 9380f116d7
commit f6577a24e6
5 changed files with 438 additions and 110 deletions
+21
View File
@@ -215,6 +215,27 @@ func TestLoginAttendanceAndReportFlow(t *testing.T) {
if _, err := s.store.Authenticate("navid", "temporary-password"); err != nil {
t.Fatalf("unlocked teammate could not authenticate: %v", err)
}
newPassword := formRequest(t, s.http.Handler, "/admin/users/"+strconv.FormatInt(testuser.ID, 10)+"/password", url.Values{
"csrf": {csrf},
"password": {"changed-password"},
"password_confirm": {"changed-password"},
}, session)
if newPassword.Code != http.StatusSeeOther || newPassword.Header().Get("Location") != "/admin/users?flash=Password+updated" {
t.Fatalf("change password: got %d location %q", newPassword.Code, newPassword.Header().Get("Location"))
}
if _, err := s.store.Authenticate("navid", "temporary-password"); err == nil {
t.Fatal("old password still authenticates after reset")
}
if _, err := s.store.Authenticate("navid", "changed-password"); err != nil {
t.Fatalf("new password does not authenticate: %v", err)
}
deleteUser := formRequest(t, s.http.Handler, "/admin/users/"+strconv.FormatInt(testuser.ID, 10)+"/delete", url.Values{"csrf": {csrf}}, session)
if deleteUser.Code != http.StatusSeeOther || deleteUser.Header().Get("Location") != "/admin/users?flash=Account+deleted" {
t.Fatalf("delete user: got %d location %q", deleteUser.Code, deleteUser.Header().Get("Location"))
}
if _, err := s.store.Authenticate("navid", "changed-password"); err == nil {
t.Fatal("deleted account still authenticates")
}
checkIn := formRequest(t, s.http.Handler, "/attendance/check-in", url.Values{
"csrf": {csrf},