From 9a73f9988588b6b1be5711634239381fe9e01d16 Mon Sep 17 00:00:00 2001 From: Harrison Healey Date: Tue, 6 Feb 2018 18:45:14 -0500 Subject: ICU-715 Change ExperimentalGroupUnreadChannels setting to allow for default on/off (#8211) --- model/config.go | 18 ++++++++++++++++-- model/config_test.go | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 48 insertions(+), 2 deletions(-) (limited to 'model') diff --git a/model/config.go b/model/config.go index b7888ab13..20011f7cb 100644 --- a/model/config.go +++ b/model/config.go @@ -69,6 +69,10 @@ const ( ALLOW_EDIT_POST_NEVER = "never" ALLOW_EDIT_POST_TIME_LIMIT = "time_limit" + GROUP_UNREAD_CHANNELS_DISABLED = "disabled" + GROUP_UNREAD_CHANNELS_DEFAULT_ON = "default_on" + GROUP_UNREAD_CHANNELS_DEFAULT_OFF = "default_off" + EMAIL_BATCHING_BUFFER_SIZE = 256 EMAIL_BATCHING_INTERVAL = 30 @@ -214,7 +218,7 @@ type ServiceSettings struct { EnablePreviewFeatures *bool EnableTutorial *bool ExperimentalEnableDefaultChannelLeaveJoinMessages *bool - ExperimentalGroupUnreadChannels *bool + ExperimentalGroupUnreadChannels *string ImageProxyType *string ImageProxyURL *string ImageProxyOptions *string @@ -424,7 +428,11 @@ func (s *ServiceSettings) SetDefaults() { } if s.ExperimentalGroupUnreadChannels == nil { - s.ExperimentalGroupUnreadChannels = NewBool(false) + s.ExperimentalGroupUnreadChannels = NewString(GROUP_UNREAD_CHANNELS_DISABLED) + } else if *s.ExperimentalGroupUnreadChannels == "0" { + s.ExperimentalGroupUnreadChannels = NewString(GROUP_UNREAD_CHANNELS_DISABLED) + } else if *s.ExperimentalGroupUnreadChannels == "1" { + s.ExperimentalGroupUnreadChannels = NewString(GROUP_UNREAD_CHANNELS_DEFAULT_ON) } if s.ImageProxyType == nil { @@ -2070,6 +2078,12 @@ func (ss *ServiceSettings) isValid() *AppError { return NewAppError("Config.IsValid", "model.config.is_valid.listen_address.app_error", nil, "", http.StatusBadRequest) } + if *ss.ExperimentalGroupUnreadChannels != GROUP_UNREAD_CHANNELS_DISABLED && + *ss.ExperimentalGroupUnreadChannels != GROUP_UNREAD_CHANNELS_DEFAULT_ON && + *ss.ExperimentalGroupUnreadChannels != GROUP_UNREAD_CHANNELS_DEFAULT_OFF { + return NewAppError("Config.IsValid", "model.config.is_valid.group_unread_channels.app_error", nil, "", http.StatusBadRequest) + } + switch *ss.ImageProxyType { case "", "willnorris/imageproxy": case "atmos/camo": diff --git a/model/config_test.go b/model/config_test.go index ceede6be4..5510c40d0 100644 --- a/model/config_test.go +++ b/model/config_test.go @@ -36,6 +36,38 @@ func TestConfigDefaultFileSettingsS3SSE(t *testing.T) { } } +func TestConfigDefaultServiceSettingsExperimentalGroupUnreadChannels(t *testing.T) { + c1 := Config{} + c1.SetDefaults() + + if *c1.ServiceSettings.ExperimentalGroupUnreadChannels != GROUP_UNREAD_CHANNELS_DISABLED { + t.Fatal("ServiceSettings.ExperimentalGroupUnreadChannels should default to 'disabled'") + } + + // This setting was briefly a boolean, so ensure that those values still work as expected + c1 = Config{ + ServiceSettings: ServiceSettings{ + ExperimentalGroupUnreadChannels: NewString("1"), + }, + } + c1.SetDefaults() + + if *c1.ServiceSettings.ExperimentalGroupUnreadChannels != GROUP_UNREAD_CHANNELS_DEFAULT_ON { + t.Fatal("ServiceSettings.ExperimentalGroupUnreadChannels should set true to 'default on'") + } + + c1 = Config{ + ServiceSettings: ServiceSettings{ + ExperimentalGroupUnreadChannels: NewString("0"), + }, + } + c1.SetDefaults() + + if *c1.ServiceSettings.ExperimentalGroupUnreadChannels != GROUP_UNREAD_CHANNELS_DISABLED { + t.Fatal("ServiceSettings.ExperimentalGroupUnreadChannels should set false to 'disabled'") + } +} + func TestMessageExportSettingsIsValidEnableExportNotSet(t *testing.T) { fs := &FileSettings{} mes := &MessageExportSettings{} -- cgit v1.2.3-1-g7c22