* keep sure if assigneeIDs == nil -> do nothing
* fix #8872
* Revert "keep sure if assigneeIDs == nil -> do nothing"
-> go handle it itself preaty well
This reverts commit
e72d94129c4666d5151f6131cb2f8c1de127d9d0.
* clarity comparson
Co-Authored-By: guillep2k <18600385+guillep2k@users.noreply.github.com>
* simplify
* Update models/issue_assignees.go
Co-Authored-By: guillep2k <18600385+guillep2k@users.noreply.github.com>
* Update issue_assignees.go
* simplify more
* add --if oneAssignee != ""-- again
* Update models/issue_assignees.go
Co-Authored-By: guillep2k <18600385+guillep2k@users.noreply.github.com>
* CI.restart()
* Update issue_assignees.go
* add Test for GetUserIDsByNames
* add Test for MakeIDsFromAPIAssigneesToAdd
* fix test
import (
"fmt"
+ "code.gitea.io/gitea/modules/util"
+
"xorm.io/xorm"
)
// MakeIDsFromAPIAssigneesToAdd returns an array with all assignee IDs
func MakeIDsFromAPIAssigneesToAdd(oneAssignee string, multipleAssignees []string) (assigneeIDs []int64, err error) {
+ var requestAssignees []string
+
// Keeping the old assigning method for compatibility reasons
- if oneAssignee != "" {
-
- // Prevent double adding assignees
- var isDouble bool
- for _, assignee := range multipleAssignees {
- if assignee == oneAssignee {
- isDouble = true
- break
- }
- }
+ if oneAssignee != "" && !util.IsStringInSlice(oneAssignee, multipleAssignees) {
+ requestAssignees = append(requestAssignees, oneAssignee)
+ }
- if !isDouble {
- multipleAssignees = append(multipleAssignees, oneAssignee)
- }
+ //Prevent empty assignees
+ if len(multipleAssignees) > 0 && multipleAssignees[0] != "" {
+ requestAssignees = append(requestAssignees, multipleAssignees...)
}
// Get the IDs of all assignees
- assigneeIDs, err = GetUserIDsByNames(multipleAssignees, false)
+ assigneeIDs, err = GetUserIDsByNames(requestAssignees, false)
return
}
assert.NoError(t, err)
assert.False(t, isAssigned)
}
+
+func TestMakeIDsFromAPIAssigneesToAdd(t *testing.T) {
+ IDs, err := MakeIDsFromAPIAssigneesToAdd("", []string{""})
+ assert.NoError(t, err)
+ assert.Equal(t, []int64{}, IDs)
+
+ IDs, err = MakeIDsFromAPIAssigneesToAdd("", []string{"none_existing_user"})
+ assert.Error(t, err)
+
+ IDs, err = MakeIDsFromAPIAssigneesToAdd("user1", []string{"user1"})
+ assert.NoError(t, err)
+ assert.Equal(t, []int64{1}, IDs)
+
+ IDs, err = MakeIDsFromAPIAssigneesToAdd("user2", []string{""})
+ assert.NoError(t, err)
+ assert.Equal(t, []int64{2}, IDs)
+
+ IDs, err = MakeIDsFromAPIAssigneesToAdd("", []string{"user1", "user2"})
+ assert.NoError(t, err)
+ assert.Equal(t, []int64{1, 2}, IDs)
+}
assert.NoError(t, DeleteUser(v.user))
}
}
+
+func TestGetUserIDsByNames(t *testing.T) {
+
+ //ignore non existing
+ IDs, err := GetUserIDsByNames([]string{"user1", "user2", "none_existing_user"}, true)
+ assert.NoError(t, err)
+ assert.Equal(t, []int64{1, 2}, IDs)
+
+ //ignore non existing
+ IDs, err = GetUserIDsByNames([]string{"user1", "do_not_exist"}, false)
+ assert.Error(t, err)
+ assert.Equal(t, []int64(nil), IDs)
+}