You've already forked focalboard
							
							
				mirror of
				https://github.com/mattermost/focalboard.git
				synced 2025-10-31 00:17:42 +02:00 
			
		
		
		
	(cherry picked from commit 257cc5f1fd)
Co-authored-by: Miguel de la Cruz <miguel@mcrx.me>
			
			
This commit is contained in:
		| @@ -0,0 +1 @@ | ||||
| SELECT 1; | ||||
| @@ -0,0 +1,8 @@ | ||||
| {{if .plugin}} | ||||
|   UPDATE FileInfo | ||||
|      SET DeleteAt = 0 | ||||
|    WHERE CreatorId = 'boards' | ||||
|      AND DeleteAt != 0; | ||||
| {{else}} | ||||
| SELECT 1; | ||||
| {{end}} | ||||
| @@ -0,0 +1,9 @@ | ||||
| INSERT INTO FileInfo | ||||
| (Id, CreatorId, CreateAt, UpdateAt, DeleteAt) | ||||
| VALUES | ||||
| ('fileinfo-1', 'user-id', 1, 1, 1000), | ||||
| ('fileinfo-2', 'user-id', 1, 1, 1000), | ||||
| ('fileinfo-3', 'user-id', 1, 1, 0), | ||||
| ('fileinfo-4', 'boards', 1, 1, 2000), | ||||
| ('fileinfo-5', 'boards', 1, 1, 2000), | ||||
| ('fileinfo-6', 'boards', 1, 1, 0); | ||||
| @@ -0,0 +1,48 @@ | ||||
| package migrationstests | ||||
|  | ||||
| import ( | ||||
| 	"testing" | ||||
|  | ||||
| 	"github.com/stretchr/testify/require" | ||||
| ) | ||||
|  | ||||
| func Test40FixFileinfoSoftDeletes(t *testing.T) { | ||||
| 	th, tearDown := SetupPluginTestHelper(t) | ||||
| 	defer tearDown() | ||||
|  | ||||
| 	th.f.MigrateToStep(39). | ||||
| 		ExecFile("./fixtures/test40FixFileinfoSoftDeletes.sql"). | ||||
| 		MigrateToStep(40) | ||||
|  | ||||
| 	type FileInfo struct { | ||||
| 		Id       string | ||||
| 		DeleteAt int | ||||
| 	} | ||||
|  | ||||
| 	getFileInfo := func(t *testing.T, id string) FileInfo { | ||||
| 		t.Helper() | ||||
| 		fileInfo := FileInfo{} | ||||
|  | ||||
| 		query := "SELECT id, deleteat FROM FileInfo WHERE id = $1" | ||||
| 		if th.IsMySQL() { | ||||
| 			query = "SELECT Id as id, DeleteAt as deleteat FROM FileInfo WHERE Id = ?" | ||||
| 		} | ||||
|  | ||||
| 		err := th.f.DB().Get(&fileInfo, query, id) | ||||
| 		require.NoError(t, err) | ||||
|  | ||||
| 		return fileInfo | ||||
| 	} | ||||
|  | ||||
| 	t.Run("the file infos that don't belong to boards will not be restored", func(t *testing.T) { | ||||
| 		require.Equal(t, 1000, getFileInfo(t, "fileinfo-1").DeleteAt) | ||||
| 		require.Equal(t, 1000, getFileInfo(t, "fileinfo-2").DeleteAt) | ||||
| 		require.Empty(t, getFileInfo(t, "fileinfo-3").DeleteAt) | ||||
| 	}) | ||||
|  | ||||
| 	t.Run("the file infos that belong to boards should correctly be restored", func(t *testing.T) { | ||||
| 		require.Empty(t, getFileInfo(t, "fileinfo-3").DeleteAt) | ||||
| 		require.Empty(t, getFileInfo(t, "fileinfo-4").DeleteAt) | ||||
| 		require.Empty(t, getFileInfo(t, "fileinfo-5").DeleteAt) | ||||
| 	}) | ||||
| } | ||||
		Reference in New Issue
	
	Block a user