This commit is contained in:
+15
-15
@@ -142,47 +142,47 @@ func TestLoginAttendanceAndReportFlow(t *testing.T) {
|
||||
|
||||
createUser := formRequest(t, s.http.Handler, "/admin/users", url.Values{
|
||||
"csrf": {csrf},
|
||||
"username": {"sara"},
|
||||
"username": {"navid"},
|
||||
"password": {"temporary-password"},
|
||||
"display_name": {"Sara Ahmadi"},
|
||||
"email": {"sara@example.test"},
|
||||
"display_name": {"Navid Somethingi"},
|
||||
"email": {"navid@example.test"},
|
||||
"role": {"member"},
|
||||
}, session)
|
||||
if createUser.Code != http.StatusSeeOther {
|
||||
t.Fatalf("create user status: got %d, body %s", createUser.Code, createUser.Body.String())
|
||||
}
|
||||
if _, err := s.store.Authenticate("sara", "temporary-password"); err != nil {
|
||||
if _, err := s.store.Authenticate("navid", "temporary-password"); err != nil {
|
||||
t.Fatalf("created teammate could not authenticate: %v", err)
|
||||
}
|
||||
users, err := s.store.Users()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
var sara User
|
||||
var testuser User
|
||||
for _, user := range users {
|
||||
if user.Username == "sara" {
|
||||
sara = user
|
||||
if user.Username == "navid" {
|
||||
testuser = user
|
||||
break
|
||||
}
|
||||
}
|
||||
if sara.ID == 0 || !sara.Active {
|
||||
t.Fatalf("created teammate missing or inactive: %#v", sara)
|
||||
if testuser.ID == 0 || !testuser.Active {
|
||||
t.Fatalf("created teammate missing or inactive: %#v", testuser)
|
||||
}
|
||||
saraToken, _, err := s.store.CreateSession(sara.ID)
|
||||
testUserToken, _, err := s.store.CreateSession(testuser.ID)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
lockUser := formRequest(t, s.http.Handler, "/admin/users/"+strconv.FormatInt(sara.ID, 10)+"/status", url.Values{
|
||||
lockUser := formRequest(t, s.http.Handler, "/admin/users/"+strconv.FormatInt(testuser.ID, 10)+"/status", url.Values{
|
||||
"csrf": {csrf},
|
||||
"action": {"lock"},
|
||||
}, session)
|
||||
if lockUser.Code != http.StatusSeeOther || lockUser.Header().Get("Location") != "/admin/users?flash=Account+locked" {
|
||||
t.Fatalf("lock user: got %d location %q", lockUser.Code, lockUser.Header().Get("Location"))
|
||||
}
|
||||
if _, err := s.store.Authenticate("sara", "temporary-password"); err == nil || !strings.Contains(err.Error(), "locked") {
|
||||
if _, err := s.store.Authenticate("navid", "temporary-password"); err == nil || !strings.Contains(err.Error(), "locked") {
|
||||
t.Fatalf("locked teammate authentication result: %v", err)
|
||||
}
|
||||
if _, _, err := s.store.Session(saraToken); err == nil {
|
||||
if _, _, err := s.store.Session(testUserToken); err == nil {
|
||||
t.Fatal("locking a teammate did not revoke the active session")
|
||||
}
|
||||
if activeUsers, err := s.store.ActiveUsers(); err != nil || len(activeUsers) != 1 {
|
||||
@@ -205,14 +205,14 @@ func TestLoginAttendanceAndReportFlow(t *testing.T) {
|
||||
if lockSelf.Code != http.StatusSeeOther || !strings.Contains(lockSelf.Header().Get("Location"), "error=") {
|
||||
t.Fatalf("administrator could lock their own account: %d %q", lockSelf.Code, lockSelf.Header().Get("Location"))
|
||||
}
|
||||
unlockUser := formRequest(t, s.http.Handler, "/admin/users/"+strconv.FormatInt(sara.ID, 10)+"/status", url.Values{
|
||||
unlockUser := formRequest(t, s.http.Handler, "/admin/users/"+strconv.FormatInt(testuser.ID, 10)+"/status", url.Values{
|
||||
"csrf": {csrf},
|
||||
"action": {"unlock"},
|
||||
}, session)
|
||||
if unlockUser.Code != http.StatusSeeOther || unlockUser.Header().Get("Location") != "/admin/users?flash=Account+unlocked" {
|
||||
t.Fatalf("unlock user: got %d location %q", unlockUser.Code, unlockUser.Header().Get("Location"))
|
||||
}
|
||||
if _, err := s.store.Authenticate("sara", "temporary-password"); err != nil {
|
||||
if _, err := s.store.Authenticate("navid", "temporary-password"); err != nil {
|
||||
t.Fatalf("unlocked teammate could not authenticate: %v", err)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user