MM-14882 Filter out inactive users from out of channel/group mentions (#10685)

* Add FilterByActive to UserSlice type

* Filter out inactive users from out of channel/group mentions
Этот коммит содержится в:
Joram Wilander
2019-04-25 08:45:03 -04:00
коммит произвёл GitHub
родитель 9c9c00b020
Коммит b24013d54c
3 изменённых файлов: 36 добавлений и 1 удалений

Просмотреть файл

@@ -137,6 +137,19 @@ func (u UserSlice) IDs() []string {
return ids
}
func (u UserSlice) FilterByActive(active bool) UserSlice {
var matches []*User
for _, user := range u {
if user.DeleteAt == 0 && active {
matches = append(matches, user)
} else if user.DeleteAt != 0 && !active {
matches = append(matches, user)
}
}
return UserSlice(matches)
}
func (u UserSlice) FilterByID(ids []string) UserSlice {
var matches []*User
for _, user := range u {

Просмотреть файл

@@ -388,3 +388,25 @@ func TestIsValidLocale(t *testing.T) {
})
}
}
func TestUserSlice(t *testing.T) {
t.Run("FilterByActive", func(t *testing.T) {
user0 := &User{Id: "user0", DeleteAt: 0}
user1 := &User{Id: "user1", DeleteAt: 0}
user2 := &User{Id: "user2", DeleteAt: 1}
slice := UserSlice([]*User{user0, user1, user2})
activeUsers := slice.FilterByActive(true)
assert.Equal(t, 2, len(activeUsers))
for _, user := range activeUsers {
assert.True(t, user.DeleteAt == 0)
}
inactiveUsers := slice.FilterByActive(false)
assert.Equal(t, 1, len(inactiveUsers))
for _, user := range inactiveUsers {
assert.True(t, user.DeleteAt != 0)
}
})
}