MM-23484 - add simple validation to getUserStatusesByIds (#14158)
* MM-23484 - add simple validation to GetUsersStatusesByIds * MM-23484 - return early in validation, add extra test case * MM-23484 - add test case for empty array Co-authored-by: Fedor Vitkovskiy <fedorvitkovskiy@pop-os.localdomain>
Этот коммит содержится в:
коммит произвёл
GitHub
родитель
c82c2db8ce
Коммит
896c3f736d
@@ -45,6 +45,13 @@ func getUserStatusesByIds(c *Context, w http.ResponseWriter, r *http.Request) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for _, userId := range userIds {
|
||||||
|
if len(userId) != 26 {
|
||||||
|
c.SetInvalidParam("user_ids")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// No permission check required
|
// No permission check required
|
||||||
|
|
||||||
statusMap, err := c.App.GetUserStatusesByIds(userIds)
|
statusMap, err := c.App.GetUserStatusesByIds(userIds)
|
||||||
|
|||||||
@@ -58,7 +58,6 @@ func TestGetUserStatus(t *testing.T) {
|
|||||||
|
|
||||||
t.Run("get status from logged out user", func(t *testing.T) {
|
t.Run("get status from logged out user", func(t *testing.T) {
|
||||||
Client.Logout()
|
Client.Logout()
|
||||||
|
|
||||||
_, resp := Client.GetUserStatus(th.BasicUser2.Id, "")
|
_, resp := Client.GetUserStatus(th.BasicUser2.Id, "")
|
||||||
CheckUnauthorizedStatus(t, resp)
|
CheckUnauthorizedStatus(t, resp)
|
||||||
})
|
})
|
||||||
@@ -83,6 +82,16 @@ func TestGetUsersStatusesByIds(t *testing.T) {
|
|||||||
CheckBadRequestStatus(t, resp)
|
CheckBadRequestStatus(t, resp)
|
||||||
})
|
})
|
||||||
|
|
||||||
|
t.Run("completely invalid userIds list", func(t *testing.T) {
|
||||||
|
_, resp := Client.GetUsersStatusesByIds([]string{"invalid_user_id", "invalid_user_id"})
|
||||||
|
CheckBadRequestStatus(t, resp)
|
||||||
|
})
|
||||||
|
|
||||||
|
t.Run("partly invalid userIds list", func(t *testing.T) {
|
||||||
|
_, resp := Client.GetUsersStatusesByIds([]string{th.BasicUser.Id, "invalid_user_id"})
|
||||||
|
CheckBadRequestStatus(t, resp)
|
||||||
|
})
|
||||||
|
|
||||||
t.Run("offline status", func(t *testing.T) {
|
t.Run("offline status", func(t *testing.T) {
|
||||||
usersStatuses, resp := Client.GetUsersStatusesByIds(usersIds)
|
usersStatuses, resp := Client.GetUsersStatusesByIds(usersIds)
|
||||||
CheckNoError(t, resp)
|
CheckNoError(t, resp)
|
||||||
|
|||||||
Ссылка в новой задаче
Block a user