From b6a02cb6a58cdc5b77bdaab18248b1c4decc7eb1 Mon Sep 17 00:00:00 2001 From: nithinvarma411 Date: Sun, 24 May 2026 18:17:52 +0530 Subject: [PATCH] fix(assignees): resolve 500 error when reading task assignees --- pkg/models/task_assignees.go | 3 +-- pkg/webtests/task_test.go | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+), 2 deletions(-) diff --git a/pkg/models/task_assignees.go b/pkg/models/task_assignees.go index c2cb20483..31e498c6e 100644 --- a/pkg/models/task_assignees.go +++ b/pkg/models/task_assignees.go @@ -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 } diff --git a/pkg/webtests/task_test.go b/pkg/webtests/task_test.go index d067703b7..5afe7f717 100644 --- a/pkg/webtests/task_test.go +++ b/pkg/webtests/task_test.go @@ -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)) + }) + }) +}