From 2365f1286bcc1c7d1a1ddb2747fa240ec5d92c09 Mon Sep 17 00:00:00 2001 From: Tim Scheuermann Date: Thu, 4 Aug 2022 12:15:54 +0300 Subject: [PATCH] [MM-46054] Log missing default channels (#20738) --- app/channel.go | 9 +-------- app/channel_test.go | 27 +++++++++++++++++++++++++++ 2 files changed, 28 insertions(+), 8 deletions(-) diff --git a/app/channel.go b/app/channel.go index 3021a42c8b..6287cbc165 100644 --- a/app/channel.go +++ b/app/channel.go @@ -91,17 +91,10 @@ func (a *App) JoinDefaultChannels(c request.CTX, teamID string, user *model.User } } - var err *model.AppError for _, channelName := range a.DefaultChannelNames(c) { channel, channelErr := a.Srv().Store.Channel().GetByName(teamID, channelName, true) if channelErr != nil { - var nfErr *store.ErrNotFound - switch { - case errors.As(err, &nfErr): - err = model.NewAppError("JoinDefaultChannels", "app.channel.get_by_name.missing.app_error", nil, nfErr.Error(), http.StatusNotFound) - default: - err = model.NewAppError("JoinDefaultChannels", "app.channel.get_by_name.existing.app_error", nil, channelErr.Error(), http.StatusInternalServerError) - } + c.Logger().Warn("No default channel with this name", mlog.String("channelName", channelName), mlog.String("teamID", teamID), mlog.Err(channelErr)) continue } diff --git a/app/channel_test.go b/app/channel_test.go index 50a6768ffe..2d5a9b559d 100644 --- a/app/channel_test.go +++ b/app/channel_test.go @@ -347,6 +347,33 @@ func TestJoinDefaultChannelsExperimentalDefaultChannels(t *testing.T) { } } +func TestJoinDefaultChannelsExperimentalDefaultChannelsMissing(t *testing.T) { + th := Setup(t).InitBasic() + defer th.TearDown() + + basicChannel2 := th.CreateChannel(th.Context, th.BasicTeam) + defer th.App.PermanentDeleteChannel(th.Context, basicChannel2) + defaultChannelList := []string{th.BasicChannel.Name, basicChannel2.Name, "thischanneldoesnotexist", basicChannel2.Name} + th.App.Config().TeamSettings.ExperimentalDefaultChannels = defaultChannelList + + user := th.CreateUser() + require.Nil(t, th.App.JoinDefaultChannels(th.Context, th.BasicTeam.Id, user, false, "")) + + for _, channelName := range defaultChannelList { + if channelName == "thischanneldoesnotexist" { + continue // skip the non-existent channel + } + + channel, err := th.App.GetChannelByName(th.Context, channelName, th.BasicTeam.Id, false) + require.Nil(t, err, "Expected nil, didn't receive nil") + + member, err := th.App.GetChannelMember(th.Context, channel.Id, user.Id) + + require.NotNil(t, member, "Expected member object, got nil") + require.Nil(t, err, "Expected nil object, didn't receive nil") + } +} + func TestCreateChannelPublicCreatesChannelMemberHistoryRecord(t *testing.T) { th := Setup(t).InitBasic() defer th.TearDown()