Fixed bug around channel file sidebar (#27705)

* Fixed the issue for DB layer, ES to go

* Handled channel bookmarks

* Handled Bleve

* Lint fix

* Added channel bookmark test

* Skip bleve test

* Used common function

* SKipping ES as indexing logic in unavailable in test
Этот коммит содержится в:
Harshil Sharma
2024-07-26 11:45:42 +05:30
коммит произвёл GitHub
родитель d8b01bde2e
Коммит eb6336ce7a
4 изменённых файлов: 62 добавлений и 1 удалений

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

@@ -183,6 +183,16 @@ var searchFileInfoStoreTests = []searchTest{
Fn: testFileInfoSearchEmailsWithoutQuotes,
Tags: []string{EngineElasticSearch},
},
{
Name: "Should not search files not attached to a post",
Fn: testFileInfoSearchNoResultForPostlessFileInfos,
Tags: []string{EnginePostgres, EngineMySQL},
},
{
Name: "Should search files part of channel bookmarks",
Fn: testFileInfoSearchShowChannelBookmarkFiles,
Tags: []string{EnginePostgres, EngineMySQL},
},
}
func TestSearchFileInfoStore(t *testing.T, s store.Store, testEngine *SearchTestEngine) {
@@ -1645,3 +1655,34 @@ func testFileInfoSearchEmailsWithoutQuotes(t *testing.T, th *SearchTestHelper) {
require.Len(t, results.FileInfos, 1)
th.checkFileInfoInSearchResults(t, p1.Id, results.FileInfos)
}
func testFileInfoSearchNoResultForPostlessFileInfos(t *testing.T, th *SearchTestHelper) {
_, err := th.createFileInfo(th.User.Id, "", th.ChannelBasic.Id, "message test@test.com", "message test@test.com", "jpg", "image/jpeg", 0, 0)
require.NoError(t, err)
defer th.deleteUserFileInfos(th.User.Id)
params := &model.SearchParams{
InChannels: []string{th.ChannelBasic.Id},
}
results, err := th.Store.FileInfo().Search(th.Context, []*model.SearchParams{params}, th.User.Id, th.Team.Id, 0, 20)
require.NoError(t, err)
require.Len(t, results.FileInfos, 0)
}
func testFileInfoSearchShowChannelBookmarkFiles(t *testing.T, th *SearchTestHelper) {
file, err := th.createFileInfo("bookmark", "", th.ChannelBasic.Id, "message test@test.com", "message test@test.com", "jpg", "image/jpeg", 0, 0)
require.NoError(t, err)
defer th.deleteUserFileInfos("bookmark")
params := &model.SearchParams{
InChannels: []string{th.ChannelBasic.Id},
}
results, err := th.Store.FileInfo().Search(th.Context, []*model.SearchParams{params}, th.User.Id, th.Team.Id, 0, 20)
require.NoError(t, err)
require.Len(t, results.FileInfos, 1)
require.Equal(t, "message test@test.com", results.FileInfos[file.Id].Name)
}

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

@@ -514,6 +514,10 @@ func (fs SqlFileInfoStore) Search(rctx request.CTX, paramsList []*model.SearchPa
LeftJoin("ChannelMembers as CM ON C.Id=CM.ChannelId").
Where(sq.Or{sq.Eq{"C.TeamId": teamId}, sq.Eq{"C.TeamId": ""}}).
Where(sq.Eq{"FileInfo.DeleteAt": 0}).
Where(sq.Or{
sq.Eq{"FileInfo.CreatorId": model.BookmarkFileOwner},
sq.NotEq{"FileInfo.PostId": ""},
}).
OrderBy("FileInfo.CreateAt DESC").
Limit(100)