From 66b7c45e697d661c342fb6719aad5ebfc67ab13f Mon Sep 17 00:00:00 2001 From: Rob Bierbooms Date: Wed, 12 Oct 2022 15:19:00 +0200 Subject: [PATCH] [MM-47367] Make sure mini preview is saved to database when updating database (#21304) --- store/sqlstore/file_info_store.go | 1 + store/storetest/file_info_store.go | 34 ++++++++++++++++++++++++++++++ 2 files changed, 35 insertions(+) diff --git a/store/sqlstore/file_info_store.go b/store/sqlstore/file_info_store.go index dbf47020e2..47d847b9d1 100644 --- a/store/sqlstore/file_info_store.go +++ b/store/sqlstore/file_info_store.go @@ -181,6 +181,7 @@ func (fs SqlFileInfoStore) Upsert(info *model.FileInfo) (*model.FileInfo, error) "Width": info.Width, "Height": info.Height, "HasPreviewImage": info.HasPreviewImage, + "MiniPreview": info.MiniPreview, "Content": info.Content, "RemoteId": info.RemoteId, }). diff --git a/store/storetest/file_info_store.go b/store/storetest/file_info_store.go index 1dc72b0536..4df67ae24a 100644 --- a/store/storetest/file_info_store.go +++ b/store/storetest/file_info_store.go @@ -28,6 +28,7 @@ func TestFileInfoStore(t *testing.T, ss store.Store) { t.Run("FileInfoPermanentDelete", func(t *testing.T) { testFileInfoPermanentDelete(t, ss) }) t.Run("FileInfoPermanentDeleteBatch", func(t *testing.T) { testFileInfoPermanentDeleteBatch(t, ss) }) t.Run("FileInfoPermanentDeleteByUser", func(t *testing.T) { testFileInfoPermanentDeleteByUser(t, ss) }) + t.Run("FileInfoUpdateMinipreview", func(t *testing.T) { testFileInfoUpdateMinipreview(t, ss) }) t.Run("GetFilesBatchForIndexing", func(t *testing.T) { testFileInfoStoreGetFilesBatchForIndexing(t, ss) }) t.Run("CountAll", func(t *testing.T) { testFileInfoStoreCountAll(t, ss) }) t.Run("GetStorageUsage", func(t *testing.T) { testFileInfoGetStorageUsage(t, ss) }) @@ -608,6 +609,39 @@ func testFileInfoPermanentDeleteByUser(t *testing.T, ss store.Store) { require.NoError(t, err) } +func testFileInfoUpdateMinipreview(t *testing.T, ss store.Store) { + info := &model.FileInfo{ + CreatorId: model.NewId(), + Path: "image.png", + } + + info, err := ss.FileInfo().Save(info) + require.NoError(t, err) + require.NotEqual(t, len(info.Id), 0) + + defer func() { + ss.FileInfo().PermanentDelete(info.Id) + }() + + rinfo, err := ss.FileInfo().Get(info.Id) + require.NoError(t, err) + require.Equal(t, info.Id, rinfo.Id) + require.Nil(t, rinfo.MiniPreview) + + miniPreview := []byte{0x0, 0x1, 0x2} + + rinfo.MiniPreview = &miniPreview + + rinfo, err = ss.FileInfo().Upsert(rinfo) + require.NoError(t, err) + require.Equal(t, info.Id, rinfo.Id) + + tinfo, err := ss.FileInfo().Get(info.Id) + require.NoError(t, err) + require.Equal(t, info.Id, tinfo.Id) + require.Equal(t, *tinfo.MiniPreview, miniPreview) +} + func testFileInfoStoreGetFilesBatchForIndexing(t *testing.T, ss store.Store) { c1 := &model.Channel{} c1.TeamId = model.NewId()