From c8c7fe0f4f68609b89c531311c6df14996f927ec Mon Sep 17 00:00:00 2001 From: Ibrahim Serdar Acikgoz Date: Tue, 29 Sep 2020 10:33:15 +0300 Subject: [PATCH] [MM-28124] api4/post: return error at getFlaggedPostsForUser (#15493) * api4/post: return error at getFlaggedPostsForUser * api4/post_test: add additional test case for GetFlaggedPosts * reflect review comments Co-authored-by: Mattermod --- api4/post.go | 10 ++++------ api4/post_test.go | 23 +++++++++++++++++++++++ 2 files changed, 27 insertions(+), 6 deletions(-) diff --git a/api4/post.go b/api4/post.go index d9cd14a858..aa635de26a 100644 --- a/api4/post.go +++ b/api4/post.go @@ -295,6 +295,10 @@ func getFlaggedPostsForUser(c *Context, w http.ResponseWriter, r *http.Request) } else { posts, err = c.App.GetFlaggedPosts(c.Params.UserId, c.Params.Page, c.Params.PerPage) } + if err != nil { + c.Err = err + return + } pl := model.NewPostList() channelReadPermission := make(map[string]bool) @@ -321,12 +325,6 @@ func getFlaggedPostsForUser(c *Context, w http.ResponseWriter, r *http.Request) } pl.SortByCreateAt() - - if err != nil { - c.Err = err - return - } - w.Write([]byte(c.App.PreparePostListForClient(pl).ToJson())) } diff --git a/api4/post_test.go b/api4/post_test.go index 39121d56ec..f937d8affe 100644 --- a/api4/post_test.go +++ b/api4/post_test.go @@ -5,6 +5,7 @@ package api4 import ( "encoding/json" + "errors" "fmt" "net/http" "net/http/httptest" @@ -20,6 +21,8 @@ import ( "github.com/mattermost/mattermost-server/v5/app" "github.com/mattermost/mattermost-server/v5/model" + "github.com/mattermost/mattermost-server/v5/plugin/plugintest/mock" + "github.com/mattermost/mattermost-server/v5/store/storetest/mocks" "github.com/mattermost/mattermost-server/v5/utils" "github.com/mattermost/mattermost-server/v5/utils/testutils" ) @@ -1354,6 +1357,26 @@ func TestGetFlaggedPostsForUser(t *testing.T) { _, resp = th.SystemAdminClient.GetFlaggedPostsForUser(user.Id, 0, 10) CheckNoError(t, resp) + + mockStore := mocks.Store{} + mockPostStore := mocks.PostStore{} + mockPostStore.On("GetFlaggedPosts", mock.AnythingOfType("string"), mock.AnythingOfType("int"), mock.AnythingOfType("int")).Return(nil, errors.New("some-error")) + mockPostStore.On("ClearCaches").Return() + mockStore.On("Team").Return(th.App.Srv().Store.Team()) + mockStore.On("Channel").Return(th.App.Srv().Store.Channel()) + mockStore.On("User").Return(th.App.Srv().Store.User()) + mockStore.On("Scheme").Return(th.App.Srv().Store.Scheme()) + mockStore.On("Post").Return(&mockPostStore) + mockStore.On("FileInfo").Return(th.App.Srv().Store.FileInfo()) + mockStore.On("Webhook").Return(th.App.Srv().Store.Webhook()) + mockStore.On("System").Return(th.App.Srv().Store.System()) + mockStore.On("License").Return(th.App.Srv().Store.License()) + mockStore.On("Role").Return(th.App.Srv().Store.Role()) + mockStore.On("Close").Return(nil) + th.App.Srv().Store = &mockStore + + _, resp = th.SystemAdminClient.GetFlaggedPostsForUser(user.Id, 0, 10) + CheckInternalErrorStatus(t, resp) } func TestGetPostsBefore(t *testing.T) {