fix(assignees): resolve 500 error when reading task assignees

This commit is contained in:
nithinvarma411 2026-05-24 18:17:52 +05:30 committed by kolaente
parent e0fb3ed732
commit b6a02cb6a5
2 changed files with 34 additions and 2 deletions

View File

@ -334,10 +334,9 @@ func (la *TaskAssginee) ReadAll(s *xorm.Session, a web.Auth, search string, page
}
numberOfTotalItems, err = s.Table("task_assignees").
Select("users.*").
Join("INNER", "users", "task_assignees.user_id = users.id").
Where("task_id = ? AND users.username LIKE ?", la.TaskID, "%"+search+"%").
Count(&user.User{})
Count(&TaskAssginee{})
return taskAssignees, len(taskAssignees), numberOfTotalItems, err
}

View File

@ -563,3 +563,36 @@ func TestTaskDuplicate(t *testing.T) {
assert.Contains(t, getHTTPErrorMessage(err), "Forbidden")
})
}
func TestTaskAssignees(t *testing.T) {
testHandler := webHandlerTest{
user: &testuser1,
strFunc: func() handler.CObject {
return &models.TaskAssginee{}
},
t: t,
}
t.Run("ReadAll", func(t *testing.T) {
t.Run("With assignees", func(t *testing.T) {
rec, err := testHandler.testReadAllWithUser(nil, map[string]string{"projecttask": "30"})
require.NoError(t, err)
assert.Equal(t, http.StatusOK, rec.Code)
assert.Contains(t, rec.Body.String(), `"id":1`)
assert.Contains(t, rec.Body.String(), `"id":2`)
})
t.Run("Without assignees", func(t *testing.T) {
rec, err := testHandler.testReadAllWithUser(nil, map[string]string{"projecttask": "1"})
require.NoError(t, err)
assert.Equal(t, http.StatusOK, rec.Code)
assert.Contains(t, rec.Body.String(), `[]`)
})
t.Run("No permission", func(t *testing.T) {
_, err := testHandler.testReadAllWithUser(nil, map[string]string{"projecttask": "14"})
require.Error(t, err)
assert.Equal(t, http.StatusForbidden, getHTTPErrorCode(err))
})
})
}