mirror of
https://github.com/mattermost/mattermost.git
synced 2025-02-25 18:55:24 -06:00
[MM-55051] Assign correct timestamp to support packet files (#25035)
* Assign correct timestamp to support packet files * Fix linter error * Add back compression --------- Co-authored-by: Mattermost Build <build@mattermost.com>
This commit is contained in:
parent
e8569c91af
commit
43f4734eae
@ -1385,7 +1385,12 @@ func (a *App) CreateZipFileAndAddFiles(fileBackend filestore.FileBackend, fileDa
|
||||
func populateZipfile(w *zip.Writer, fileDatas []model.FileData) error {
|
||||
defer w.Close()
|
||||
for _, fd := range fileDatas {
|
||||
f, err := w.Create(fd.Filename)
|
||||
f, err := w.CreateHeader(&zip.FileHeader{
|
||||
Name: fd.Filename,
|
||||
Method: zip.Deflate,
|
||||
Modified: time.Now(),
|
||||
})
|
||||
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
@ -4,10 +4,13 @@
|
||||
package app
|
||||
|
||||
import (
|
||||
"archive/zip"
|
||||
"errors"
|
||||
"fmt"
|
||||
"image"
|
||||
"io"
|
||||
"os"
|
||||
"path"
|
||||
"path/filepath"
|
||||
"testing"
|
||||
"time"
|
||||
@ -283,18 +286,53 @@ func TestCreateZipFileAndAddFiles(t *testing.T) {
|
||||
th := Setup(t)
|
||||
defer th.TearDown()
|
||||
|
||||
mockBackend := filesStoreMocks.FileBackend{}
|
||||
mockBackend.On("WriteFile", mock.Anything, "directory-to-heaven/zip-file-name-to-heaven.zip").Return(int64(666), errors.New("only those who dare to fail greatly can ever achieve greatly"))
|
||||
const (
|
||||
zipName = "zip-file-name-to-heaven.zip"
|
||||
directory = "directory-to-heaven"
|
||||
)
|
||||
|
||||
err := th.App.CreateZipFileAndAddFiles(&mockBackend, []model.FileData{}, "zip-file-name-to-heaven.zip", "directory-to-heaven")
|
||||
t.Run("write file fails", func(t *testing.T) {
|
||||
mockBackend := filesStoreMocks.FileBackend{}
|
||||
mockBackend.On("WriteFile", mock.Anything, path.Join(directory, zipName)).Return(int64(666), errors.New("only those who dare to fail greatly can ever achieve greatly"))
|
||||
|
||||
require.Error(t, err)
|
||||
require.Equal(t, err.Error(), "only those who dare to fail greatly can ever achieve greatly")
|
||||
err := th.App.CreateZipFileAndAddFiles(&mockBackend, []model.FileData{}, zipName, directory)
|
||||
|
||||
mockBackend = filesStoreMocks.FileBackend{}
|
||||
mockBackend.On("WriteFile", mock.Anything, "directory-to-heaven/zip-file-name-to-heaven.zip").Return(int64(666), nil)
|
||||
err = th.App.CreateZipFileAndAddFiles(&mockBackend, []model.FileData{}, "zip-file-name-to-heaven.zip", "directory-to-heaven")
|
||||
require.NoError(t, err)
|
||||
require.Error(t, err)
|
||||
require.Equal(t, err.Error(), "only those who dare to fail greatly can ever achieve greatly")
|
||||
})
|
||||
|
||||
t.Run("write no file", func(t *testing.T) {
|
||||
mockBackend := filesStoreMocks.FileBackend{}
|
||||
mockBackend.On("WriteFile", mock.Anything, path.Join(directory, zipName)).Return(int64(666), nil)
|
||||
err := th.App.CreateZipFileAndAddFiles(&mockBackend, []model.FileData{}, zipName, directory)
|
||||
require.NoError(t, err)
|
||||
})
|
||||
|
||||
t.Run("write one file", func(t *testing.T) {
|
||||
mockBackend := filesStoreMocks.FileBackend{}
|
||||
mockBackend.On("WriteFile", mock.Anything, path.Join(directory, zipName)).Return(int64(666), nil).Run(func(args mock.Arguments) {
|
||||
r, err := zip.OpenReader(zipName)
|
||||
require.NoError(t, err)
|
||||
require.Len(t, r.File, 1)
|
||||
|
||||
file := r.File[0]
|
||||
assert.Equal(t, "file1", file.Name)
|
||||
assert.GreaterOrEqual(t, file.Modified, time.Now().Add(-1*time.Second))
|
||||
|
||||
fr, err := file.Open()
|
||||
require.NoError(t, err)
|
||||
b, err := io.ReadAll(fr)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, []byte("content1"), b)
|
||||
})
|
||||
err := th.App.CreateZipFileAndAddFiles(&mockBackend, []model.FileData{
|
||||
{
|
||||
Filename: "file1",
|
||||
Body: []byte("content1"),
|
||||
},
|
||||
}, zipName, directory)
|
||||
require.NoError(t, err)
|
||||
})
|
||||
}
|
||||
|
||||
func TestCopyFileInfos(t *testing.T) {
|
||||
|
@ -95,7 +95,7 @@ func (a *App) generateSupportPacketYaml(c request.CTX) (*model.FileData, error)
|
||||
/* LDAP */
|
||||
|
||||
var vendorName, vendorVersion string
|
||||
if ldapInterface := a.ch.Ldap; a.ch.Ldap != nil {
|
||||
if ldapInterface := a.Ldap(); ldapInterface != nil {
|
||||
vendorName, vendorVersion = ldapInterface.GetVendorNameAndVendorVersion(c)
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user