main

mattermost/focalboard

Last updated at: 29/12/2023 09:40

files.go

TLDR

This file contains test functions for the store package in the Demo Projects project. The functions test the saving and retrieving of file information using sqlStore.SaveFileInfo() and sqlStore.GetFileInfo().

Methods

StoreTestFileStore

This method is a test function that tests the saving and retrieving of file information in the store package. It creates a test fileinfo, saves it using sqlStore.SaveFileInfo(), retrieves it using sqlStore.GetFileInfo(), and asserts the retrieved fileinfo to match the original.

END

package storetests

import (
	"testing"

	"github.com/mattermost/focalboard/server/model"
	"github.com/mattermost/focalboard/server/services/store"
	"github.com/mattermost/focalboard/server/utils"
	mmModel "github.com/mattermost/mattermost-server/v6/model"

	"github.com/stretchr/testify/require"
)

func StoreTestFileStore(t *testing.T, setup func(t *testing.T) (store.Store, func())) {
	sqlStore, tearDown := setup(t)
	defer tearDown()

	t.Run("should save and retrieve fileinfo", func(t *testing.T) {
		fileInfo := &mmModel.FileInfo{
			Id:        "file_info_1",
			CreateAt:  utils.GetMillis(),
			Name:      "Dunder Mifflin Sales Report 2022",
			Extension: ".sales",
			Size:      112233,
			DeleteAt:  0,
		}

		err := sqlStore.SaveFileInfo(fileInfo)
		require.NoError(t, err)

		retrievedFileInfo, err := sqlStore.GetFileInfo("file_info_1")
		require.NoError(t, err)
		require.Equal(t, "file_info_1", retrievedFileInfo.Id)
		require.Equal(t, "Dunder Mifflin Sales Report 2022", retrievedFileInfo.Name)
		require.Equal(t, ".sales", retrievedFileInfo.Extension)
		require.Equal(t, int64(112233), retrievedFileInfo.Size)
		require.Equal(t, int64(0), retrievedFileInfo.DeleteAt)
		require.False(t, retrievedFileInfo.Archived)
	})

	t.Run("should return an error on not found", func(t *testing.T) {
		fileInfo, err := sqlStore.GetFileInfo("nonexistent")
		require.Error(t, err)
		var nf *model.ErrNotFound
		require.ErrorAs(t, err, &nf)
		require.Nil(t, fileInfo)
	})
}