diff --git a/app/file.go b/app/file.go index 574c2dd4c4..1d54bcf3dc 100644 --- a/app/file.go +++ b/app/file.go @@ -1356,6 +1356,12 @@ func (a *App) ExtractContentFromFileInfo(fileInfo *model.FileInfo) error { if storeErr := a.Srv().Store.FileInfo().SetContent(fileInfo.Id, text); storeErr != nil { return errors.Wrap(storeErr, "failed to save the extracted file content") } + reloadFileInfo, storeErr := a.Srv().Store.FileInfo().Get(fileInfo.Id) + if storeErr != nil { + mlog.Warn("Failed to invalidate the fileInfo cache.", mlog.Err(storeErr), mlog.String("file_info_id", fileInfo.Id)) + } else { + a.Srv().Store.FileInfo().InvalidateFileInfosForPostCache(reloadFileInfo.PostId, false) + } } return nil } diff --git a/app/post_metadata_test.go b/app/post_metadata_test.go index 8b78470593..4b7ff395e8 100644 --- a/app/post_metadata_test.go +++ b/app/post_metadata_test.go @@ -189,7 +189,11 @@ func TestPreparePostForClient(t *testing.T) { fileInfo.PostId = post.Id - clientPost := th.App.PreparePostForClient(post, false, false) + var clientPost *model.Post + assert.Eventually(t, func() bool { + clientPost = th.App.PreparePostForClient(post, false, false) + return assert.ObjectsAreEqual([]*model.FileInfo{fileInfo}, clientPost.Metadata.Files) + }, time.Second, 10*time.Millisecond) assert.Equal(t, []*model.FileInfo{fileInfo}, clientPost.Metadata.Files, "should've populated Files") })