fix workspace access and vendor correct fonts
Test and publish / verify (push) Successful in 2m22s

This commit is contained in:
2026-08-04 20:07:35 +03:30
parent 29d7f1636f
commit 9380f116d7
46 changed files with 320 additions and 122 deletions
+15 -15
View File
@@ -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)
}