From a37d53c732a0da0aa5fa8825ee917c5f57656a87 Mon Sep 17 00:00:00 2001 From: Siyuan Liu Date: Sat, 16 Dec 2017 04:16:31 +0800 Subject: PLT-8350 "mention" when channel user count equals to max allowed num (#7976) --- app/notification.go | 2 +- app/notification_test.go | 16 +++++++++++++++- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/app/notification.go b/app/notification.go index 3b21e86c5..a7093e17f 100644 --- a/app/notification.go +++ b/app/notification.go @@ -935,7 +935,7 @@ func (a *App) GetMentionKeywordsInChannel(profiles map[string]*model.User, lookF // Add @channel and @all to keywords if user has them turned on if lookForSpecialMentions { - if int64(len(profiles)) < *a.Config().TeamSettings.MaxNotificationsPerChannel && profile.NotifyProps["channel"] == "true" { + if int64(len(profiles)) <= *a.Config().TeamSettings.MaxNotificationsPerChannel && profile.NotifyProps["channel"] == "true" { keywords["@channel"] = append(keywords["@channel"], profile.Id) keywords["@all"] = append(keywords["@all"], profile.Id) diff --git a/app/notification_test.go b/app/notification_test.go index 5ae765649..c5d0f8478 100644 --- a/app/notification_test.go +++ b/app/notification_test.go @@ -544,7 +544,8 @@ func TestGetMentionKeywords(t *testing.T) { return duplicate_frequency } - // multiple users + // multiple users but no more than MaxNotificationsPerChannel + th.App.UpdateConfig(func(cfg *model.Config) { *cfg.TeamSettings.MaxNotificationsPerChannel = 4 }) profiles = map[string]*model.User{ user1.Id: user1, user2.Id: user2, @@ -568,6 +569,19 @@ func TestGetMentionKeywords(t *testing.T) { t.Fatal("should've mentioned user3 and user4 with @all") } + // multiple users and more than MaxNotificationsPerChannel + th.App.UpdateConfig(func(cfg *model.Config) { *cfg.TeamSettings.MaxNotificationsPerChannel = 3 }) + mentions = th.App.GetMentionKeywordsInChannel(profiles, true) + if len(mentions) != 4 { + t.Fatal("should've returned four mention keywords") + } else if _, ok := mentions["@channel"]; ok { + t.Fatal("should not have mentioned any user with @channel") + } else if _, ok := mentions["@all"]; ok { + t.Fatal("should not have mentioned any user with @all") + } else if _, ok := mentions["@here"]; ok { + t.Fatal("should not have mentioned any user with @here") + } + // no special mentions profiles = map[string]*model.User{ user1.Id: user1, -- cgit v1.2.3-1-g7c22